以下是我的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>