[英]help with log4j.xml
我在为Quartz Web应用程序配置log4j.xml(如下所示)时遇到了难题。
它会将日志消息分发到stdout(我的Tomcat实例随后将其记录在日志中)以获取Quartz的LoggingJobHistory插件报告的INFO。 它使用下面定义的“ stdout”附加程序; 我之所以可以这样说是因为我将“ ZZZ”放在此处,并将其放入Tomcat日志。
不过,我不知道为什么。 使用“ stdout”附加程序的唯一内容是root和org.apache,它们都设置为WARN。 为什么会收到INFO消息?
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<!-- <layout class="org.apache.log4j.TTCCLayout"/> -->
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="ZZZ %d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</layout>
</appender>
<appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${quartz.root}/WEB-INF/logs/quartz-log.txt"/> <!-- orther options ${user.home} -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<param name="Append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</layout>
</appender>
<appender name="appFILE" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${quartz.root}/WEB-INF/logs/app-log.txt"/> <!-- orther options ${user.home} -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<param name="Append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</layout>
</appender>
<appender name="HtmlAppender" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${quartz.root}/WEB-INF/logs/ShortResults.html"/>
<param name="DatePattern" value="'.'yyyy-MM-dd-HH'.html'"/>
<layout class="org.apache.log4j.HTMLLayout"/>
<!--/layout-->
</appender>
<!-- log detail configuration -->
<logger name="org.quartz">
<level value="info"/>
<appender-ref ref="FILE"/>
<appender-ref ref="HtmlAppender"/>
</logger>
<logger name="com.opensymphony">
<level value="info"/>
<appender-ref ref="HtmlAppender"/>
</logger>
<logger name="org.apache">
<level value="warn"/>
<appender-ref ref="stdout"/>
</logger>
<root>
<level value="warn"/>
<appender-ref ref="stdout"/>
<appender-ref ref="FILE"/>
</root>
</log4j:configuration>
Tomcat拦截所有输出到stdout和stderr并将它们重定向到log4j。 因此,任何使用stdout或stderr的应用程序代码都将出现在通常的log4j日志文件中。
我怀疑LoggingJobHistory
插件正在向stdout写入内容,这是很差的做法,但并不能令人惊讶(Quartz代码库并不是最出色的)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.