Log4j日志筛选



以下是我的log4j.xml:的结构

<appender name="logfile" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="somelog.log" />
    <param name="Append" value="true" />
    <param name="DatePattern" value="'.'yyyy-MM-dd-a" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern"
            value="%d{HH:mm:ss,SSS} %-5p [%t]: %c{1} (%X{RequestId}) - %m%n" />
    </layout>
</appender>
<appender name="exceptionServiceSoap"
    class="org.apache.log4j.DailyRollingFileAppender">
    <param name="file" value="somelog1.log" />
    <param name="Append" value="true" />
    <param name="DatePattern" value="'.'yyyy-MM-dd-a" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern"
            value="%d{HH:mm:ss,SSS} %-5p [%t]: %c{1} (%X{RequestId}) - %m%n" />
    </layout>
</appender>
<logger name="org.codehaus.xfire" additivity="true">
            <level value="INFO" />
            <appender-ref ref="exceptionServiceSoap"/>
</logger>
<category name="org">
    <priority value="WARN" />
</category>
<category name="org.hibernate.SQL">
    <priority value="ERROR" />
</category> 
<category name="com">
    <priority value="WARN" />
</category>
<category name="httpclient">
    <priority value="WARN" />
</category>     
<root>
    <appender-ref ref="logfile" />
</root>

我希望在包"org.codehaus.xfire"中生成的日志使用appender"exceptionServiceSoap",并且出于所有其他目的,应该使用appenders"logfile",但对于以上设置,"org.codehaus.xfire"的日志将进入两个appender中。我该如何避免这种情况?

我不能100%确定,但你可以试试这个:

<Loggers>
    <Logger name="org.codehaus.xfire" level="all" additivity="false">
        <AppenderRef ref="exceptionServiceSoap"/>
    </Logger>
    <Root level="all">
        <AppenderRef ref="logfile"/>
    </Root>
</Loggers>

此外,您的附加内容应该在标签内:<Appenders>...</Appenders>

最新更新