我正在尝试在 java 应用程序中将 log4j2 与 Disruptor 一起使用。我的类路径中有以下 jar 文件:
- log4j-api-2.0-rc2.jar
- log4j-core-2.0-rc2.jar
- disruptor-3.2.0.jar
在我的 Java 类中,我执行以下操作来测试:
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
public class LoggerTest {
private static final Logger Logger = LogManager.getLogger(LoggerTest.class.getName());
public static void main(String[] args) {
Logger.info("testing log4j2 with disruptor");
}
我的log4j2.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Don't forget to set system property
-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
to make all loggers asynchronous. -->
<configuration status="INFO">
<appenders>
<!-- Async Loggers will auto-flush in batches, so switch off immediateFlush. -->
<FastFile name="RandomAccessFile" fileName="logs/test.log" immediateFlush="false" append="false">
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m %ex%n</pattern>
</PatternLayout>
</FastFile>
</appenders>
<loggers>
<root level="info" includeLocation="true">
<appender-ref ref="RandomAccessFile"/>
</root>
</loggers>
</configuration>
当我运行应用程序时,出现以下错误(没有日志输出):
2014-07-10 14:45:32,930 ERROR Error processing element FastFile: CLASS_NOT_FOUND
2014-07-10 14:45:32,973 ERROR Unable to locate appender RandomAccessFile for logger
最佳答案
在 beta9 中,<FastFile>
附加器已重命名为 <RandomAccessFile>
。如果您在配置中重命名此元素,它应该可以工作。
关于java - 带有干扰器的 log4j2 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24684083/