How do I set log level in log4j.xml
using properties file in runtime time
?
<appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{ABSOLUTE} %-5p [%c{1}] [%t]: %m%n" />
</layout>
</appender>
<logger name="com.mypackage" additivity="false">
<level value="${level}" />
<appender-ref ref="ConsoleAppender" />
</logger>
I set the value of $level
from my vm arguments
by passing the value as -Dlevel="warn"
so that all messages with level warn and above got logged.
Now my problem is I have to set the value of log level from a properties
file instead of vm arguments
? How can I do this?
P.S : I am using common.logging in the java code with log4j as a configuration mechanism.
Here's the way to change log level dynamically:
LogManager.getRootLogger().setLevel(Level.DEBUG);
To use a property from custom file use Properties.loadFromXML to read a file with properties, then determine a level using these properties.