尝试使用logback和sl4j配置ascyn日志记录。
代码(缩写):
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
protected final Logger logger = LoggerFactory.getLogger(getClass());
logger.warn("Warning message");
在loogback.xml中:
<configuration>
<jmxConfigurator/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%.-1level %d{yyMMdd} %d{HHmmss.SSS} [%thread] %logger{0} - %msg%n</Pattern>
</layout>
</encoder>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>500</queueSize>
<discardingThreshold>0</discardingThreshold>
<appender-ref ref="CONSOLE" />
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="ASYNC"/>
</root>
</configuration>
为了测试,我被迫每秒抛出10个异常。
在profiler中我看到AsyncAppender-Worker-Thread-1,但它总是等待,而主线程完全可以工作。
我错过了什么?