我想在log4j.xml中关闭调试或日志消息。
我的log4j.xml是:
<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>
我的Java代码:
public static void main(String[] args) {
log.info("info");
log.debug("dddffff");
}
如果我运行此程序仍然会记录INFO消息,下面是日志文件
07 Aug 2014 12:54:49 INFO MainClass - info
07 Aug 2014 12:54:49 DEBUG MainClass - dddffff
现在我要关闭INFO消息。
答案 0 :(得分:3)
设置记录级别值=关闭而不是 DEBUG
答案 1 :(得分:3)
您可以关闭类或包的日志。 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>
答案 2 :(得分:1)
我们应该写入log4j配置文件
<logger name="packageName.Class" additivity="false">
<level value="INFO" />
<appender-ref ref="fileAppender" />
</logger>
我在配置文件中使用了类的完全限定名,这导致getLogger方法只向特定类的日志写入appender文件。只使用类的名称,您将获得appender文件,从其他类写入的所有日志具有相同级别或更高级别。
答案 3 :(得分:0)
将阈值设置为info
,如果您需要将OFF
调试消息转为文件追加器,请将配置文件中的ex设置为<{p}},
<appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="false" />
<param name="file" value="./logs/learning.log" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd MMM yyyy HH:mm:ss} %5p %c{1} - %m%n" />
</layout>
</appender>
仅为info
启用日志记录而不进行调试。您可以通过设置OFF
来关闭日志记录。
Read here for more info关于为log4j配置xml文件。
答案 4 :(得分:0)
您可以像这样设置软件包的日志记录级别:
log4j2.xml 代码段:
{}
在此示例中, <Loggers>
<Root level="debug">
<appender-ref ref="Console" />
</Root>
<Logger name="org.eclipse.jetty" level="info" additivity="true">
<appender-ref ref="Console" />
</Logger>
</Loggers>
包中的类输出INFO级别的日志记录。所有其他类都输出DEBUG级别的日志记录。