![](/img/trans.png)
[英]Log4j Configuration issues - log4j:WARN Please initialize the log4j system properly
[英]How to log warn only in log4j
在Struts 2应用程序中,我们使用log4j进行日志记录。 我只想记录警告,但是当我尝试在log4j.properties中使用时
log4j.rootLogger=warn, stdout
它也打印错误和致命日志。 我只想警告日志。 我在一些教程中阅读了日志级别。 所以我知道为什么会出现错误和致命的打印,因为它们的优先级低于警告。 如何仅在控制台中打印警告日志?
我的Java代码:
import org.apache.log4j.Logger;
public class LogClass {
private static final org.apache.log4j.Logger log = Logger.getLogger(LogClass.class);
public static void main(String[] args) {
log.trace("Trace");
log.debug("Debug");
log.info("Info");
log.warn("Warn");
log.error("Error");
log.fatal("Fatal");
}
}
任何帮助将不胜感激!
使用org.apache.log4j.varia.LevelRangeFilter
过滤器。 您的XML配置文件可能是:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
debug="false">
<appender name="warn-out" class="org.apache.log4j.FileAppender">
<param name="File" value="warn.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="warn" />
<param name="LevelMin" value="warn" />
<param name="AcceptOnMatch" value="true" />
</filter>
</appender>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="warn" />
<param name="LevelMin" value="warn" />
<param name="AcceptOnMatch" value="true" />
</filter>
</appender>
<root>
<level value="warn" />
<appender-ref ref="warn-out" />
<appender-ref ref="console" />
</root>
</log4j:configuration>
有关更多选项,请点击此处 。
看来属性文件配置不支持过滤器。 以下摘自log4j的官方Wiki:
PropertiesConfigurator
不支持过滤器。
编辑 :向XML添加了控制台附加程序,并关闭了log4j的调试。 现在应该同时进入文件和控制台。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.