Turn off debug or log messages in log4j.xml
Solution 1
You can turn off the log for a class or package. e.g.:
<!-- console -->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<param name="threshold" value="TRACE" />
<layout class="org.apache.log4j.PatternLayout">
<param name="conversionPattern"
value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n" />
</layout>
</appender>
<!-- categories -->
<category name="org.apache.commons">
<priority value="OFF" />
</category>
<category name="org.apache.catalina.loader.WebappClassLoader">
<priority value="OFF" />
</category>
<!-- root -->
<root>
<priority value="TRACE" />
<appender-ref ref="STDOUT" />
</root>
See more in Apache log4j 1.2 - Short introduction to log4j.
Solution 2
set the logging level Value = OFF instead of DEBUG
Solution 3
We should write to the log4j config file
<logger name="packageName.Class" additivity="false">
<level value="INFO" />
<appender-ref ref="fileAppender" />
</logger>
I used the full qualified name of the class in the config file, which caused to the getLogger method write to the appender file only logs from the specific class. Using the name of the class only you will get in the appender file, all the logs written from other class with the same level or above.
Tushar Ahirrao
I know Javascript, HTML5, CSS3, Java, PHP and more.... I enjoy building things, learning programming languages, listening to music.
Updated on May 30, 2020Comments
-
Tushar Ahirrao almost 4 years
I want to turn off debug or log message in log4j.xml.
My log4j.xml is :
<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender"> <param name="Threshold" value="debug" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n" /> </layout> </appender> <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender"> <param name="append" value="false" /> <param name="file" value="./logs/learning.log" /> <param name="Threshold" value="debug" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n" /> </layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="consoleAppender" /> <appender-ref ref="fileAppender" /> </root>
My Java code :
public static void main(String[] args) { log.info("info"); log.debug("dddffff"); }
If I run this program still INFO messages are also getting logged, Below is log file
07 Aug 2014 12:54:49 INFO MainClass - info 07 Aug 2014 12:54:49 DEBUG MainClass - dddffff
Now I want to turn off INFO messages.