I have a log4j.xml
config file. and a RollingFileAppender
to which I need to provide file path for storing logs. The problem is my code will be deployed on Unix machine as a runnable jar. So if I pass parameter something like this:
value=logs/messages.log"
it creates folder named logs inside my HOME directory and writes all the messages to file inside this directory.
I have a environmental variable set to some value. I want to use path of that variable and write messages under that path. How can I achieve it?
I had tried using this:
value="${MY_HOME}/logs/message.log"
but this does not work. Can anyone suggest a solution for this problem?
I got this working.
java -DLOG_DIR=${LOG_DIR} -jar myjar.jar "param1" "param2"
==> in cmd line if you have "value="${LOG_DIR}/log/clientProject/project-error.log" in xmlThis syntax is documented only in log4j 2.X so make sure you are using the correct version.
http://logging.apache.org/log4j/2.x/manual/lookups.html#EnvironmentLookup