8

是否可以将“调试”和“信息”输出写入控制台,而“信息”输出仅写入某个日志文件?例如,给定此日志记录:

LOG.debug(fileContent);
LOG.info(fileLength);

对应的是log4j.xml什么样的?

4

5 回答 5

11

好的,我现在知道了:

<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>

谢谢你的帮助!

于 2009-04-16T06:30:11.110 回答
5

这绝对是可能的。配置看起来像这样(不检查语法正确性):

<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

于 2009-04-15T12:29:50.270 回答
1

转到页面以获取一些示例。

就像在程序中添加两个不同的 appender 一样简单,一个 appender 用于您想要执行的每种类型的日志记录。

于 2009-04-15T12:31:44.197 回答
0

With the configuration from Eddie I can only get the "info" output for MyClass. But what I would like to have is that the "info" output of MyClass goes to a file AND the "debug" output of MyClass goes to console.

于 2009-04-16T05:28:54.270 回答
0

按照 rwwilden 的建议做,但删除这部分:

<logger name="com.mycompany.mypackage.MyClass">
    <level value="info"/>
    <appender-ref ref="otherAppender" />
</logger>

<param name="Threshold" value="INFO"/>在otherAppender下添加。

于 2009-04-16T05:46:38.000 回答