簡體   English   中英

幫助log4j.xml

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM