在配置文件中如何使用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>
答案 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的文档)? 这样你只有一个日志记录线程,它可能也快得多......