log4j 2配置问题

时间:2013-07-22 11:41:14

标签: log4j2

在配置文件中如何使用asynch在不同的appaender中分离包 我有两个不同的包和使用不同的appender我想要单独的日志输出 前两个appender是不同的包,第三个appender是不同的 我需要所有appender连接到asynch ... 请帮我解决这个问题

这是我的配置文件..

    <?xml version="1.0" encoding="UTF-8"?>
<configuration strict="true" status="WARN">

    <appenders>
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
        </Console>
        <File name="MyFile" fileName="Logger/knight.log">
            <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
        </File>
        <File name="Except"  fileName="log1/Execption9.log">
            <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
        </File>
        <Async name="Async">
            <appender-ref ref="CONSOLE" />
            <appender-ref ref="MyFile" />
            <appender-ref ref="Except" />
        </Async>

    </appenders>
    <loggers>
        <root level="all">
            <appender-ref ref="Async" />
        </root>

    </loggers>
</configuration>

1 个答案:

答案 0 :(得分:0)

您可以配置三个单独的AsyncAppender,一个用于每个File appender,另一个用于console,然后将root配置为:

  <root>
    <appender-ref ref="async-console" level="info" />
    <appender-ref ref="async-file1" level="trace" />
    <appender-ref ref="async-file2" level="error" />
  </root>

但是这个解决方案为您提供了三个线程。为什么不使用AsyncLoggers(使用选择器命令行选项,请参阅AsyncLoggers的文档)? 这样你只有一个日志记录线程,它可能也快得多......