Java 关闭 log4j.xml 中的调试或日志消息
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/25156812/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Turn off debug or log messages in log4j.xml
提问by Tushar Ahirrao
I want to turn off debug or log message in log4j.xml.
我想关闭 log4j.xml 中的调试或日志消息。
My log4j.xml is :
我的 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>
My Java code :
我的Java代码:
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
如果我运行这个程序仍然会记录 INFO 消息,下面是日志文件
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.
现在我想关闭 INFO 消息。
回答by Abhinav kumar
set the logging level Value = OFFinstead of DEBUG
设置日志级别Value = OFF而不是DEBUG
回答by Santhosh
Set the threshold value to info
, for ex in your configuration file if you need to turn OFF
the messages for debug to file appender,
info
如果您需要将OFF
调试消息转换为文件附加程序,请将阈值设置为,例如在您的配置文件中,
<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>
enable logging only for info
not for debug.You can turn off logging by setting OFF
.
仅对info
非调试启用日志记录。您可以通过设置关闭日志记录OFF
。
Read here for more infoabout configuring the xml file for log4j.
回答by Paul Vargas
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.
在Apache log4j 1.2 - log4j 的简短介绍中查看更多信息。
回答by Eliko
We should write to the log4j config file
我们应该写入 log4j 配置文件
<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.
我在配置文件中使用了类的全限定名,这导致 getLogger 方法只写入来自特定类的日志。仅使用类的名称,您将在appender 文件中获得所有从其他同级别或更高级别的类写入的日志。
回答by Joman68
You can set the logging level for a package like this:
您可以为这样的包设置日志记录级别:
log4j2.xmlsnippet:
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>
In this example, classes in the org.eclipse.jetty
package output INFO level logging. All other classes output DEBUG level logging.
在此示例中,org.eclipse.jetty
包中的类输出 INFO 级别的日志记录。所有其他类输出调试级别的日志记录。