-1

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

这是我的配置文件..

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

1 回答 1

0

您可以配置三个单独的 AsyncAppender,一个用于每个 File appender,一个用于控制台,然后将 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 的文档)?这样你只有一个日志记录线程,而且它可能也快很多......

于 2013-07-22T23:50:34.320 回答