在将“debug”和“info”输出写入控制台的同时,是否可能仅将“info”输出写入某个日志文件中?例如,给定以下日志记录:
LOG.debug(fileContent);
LOG.info(fileLength);
相应的 log4j.xml
长什么样子呢?
在将“debug”和“info”输出写入控制台的同时,是否可能仅将“info”输出写入某个日志文件中?例如,给定以下日志记录:
LOG.debug(fileContent);
LOG.info(fileLength);
相应的 log4j.xml
长什么样子呢?
好的,我现在明白了:
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
...
</appender>
<appender name="otherAppender"
class="org.apache.log4j.FileAppender FileAppender">
<param name="Threshold" value="INFO"/>
...
</appender>
<root>
<priority value="debug" />
<appender-ref ref="console" />
<appender-ref ref="otherAppender" />
</root>
</log4j:configuration>
谢谢你的帮助!
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
...
</appender>
<appender name="otherAppender"
class="org.apache.log4j.FileAppender FileAppender">
...
</appender>
<logger name="com.mycompany.mypackage.MyClass">
<level value="info"/>
<appender-ref ref="otherAppender" />
</logger>
<root>
<priority value="debug" />
<appender-ref ref="console" />
</root>
</log4j:configuration>
所有的调试和信息消息都发送到 console
输出器。信息消息发送到 otherAppender
。
按照rwwilden的建议操作,但删除这部分内容:
<logger name="com.mycompany.mypackage.MyClass">
<level value="info"/>
<appender-ref ref="otherAppender" />
</logger>
在 otherAppender 下面添加 <param name="Threshold" value="INFO"/>
。
使用Eddie的配置,我只能获得MyClass的“info”输出。但是我想要的是MyClass的“info”输出写入文件,而“debug”输出在控制台显示。