![](/img/trans.png)
[英]log4j 2.0 JDBC ConnectionFactory to DB2 not adding records to log table (log4j2.xml)
[英]Log4j 2.0 - No Logs appearing in the Log Files - Trying Multiple Loggers in the same Class using log4j2.xml
以下是我創建的log4j2.xml文件。 我為異步日志記錄配置了async_file.log,為常規和同步日志記錄配置了regular_file.log。 問題是創建了日志文件,但是文件的大小為零且沒有日志。 所有日志都將發送到server.log文件(JBOSS),而不是我已為其配置的2個文件(async_file.log和regular_file.log)。
我正在通過名稱DCLASS調用同一個類文件中的兩個不同的記錄器,如下所示:
private static final transient Logger LOG = Logger.getLogger(DCLASS.class);
private static final transient Logger ASYNC_LOG = Logger.getLogger("ASYNC");
我在類路徑中包含以下jar:
1. log4j-api-2.0-beta8.jar
2. log4j-core-2.0-beta8.jar
3. Disruptor-3.0.0.beta1.jar
我的log4j2.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="INFO">
<appenders>
<!-- Async Loggers will auto-flush in batches, so switch off immediateFlush. -->
<FastFile name="AsyncFastFile" fileName="../standalone/log/async_file.log"
immediateFlush="false" append="true">
<PatternLayout>
<pattern>%d %p %class{1.} [%t] %location %m %ex%n</pattern>
</PatternLayout>
</FastFile>
<FastFile name="FastFile" fileName="../standalone/log/regular_file.log"
immediateFlush="true" append="true">
<PatternLayout>
<pattern>%d %p %class{1.} [%t] %location %m %ex%n</pattern>
</PatternLayout>
</FastFile>
</appenders>
<loggers>
<!-- pattern layout actually uses location, so we need to include it -->
<asyncLogger name="ASYNC" level="trace" includeLocation="true">
<appender-ref ref="AsyncFastFile"/>
</asyncLogger>
<root level="info" includeLocation="true">
<appender-ref ref="FastFile"/>
</root>
</loggers>
</configuration>
日志未進入日志文件的原因是,我使用的是“ Logger”而不是“ LogManager”。
在代碼中,我有
private static final transient Logger ASYNC_LOG = Logger.getLogger("ASYNC");
該代碼應該是
private static final transient Logger ASYNC_LOG = Logmanager.getLogger("ASYNC");
當它是'logger'時,則編譯器將查找'Log4j API';當它是'LogManager'時,它將查找'Log4j2 API'。 由於我已經將所有內容配置為使用Log4j2,因此通過將記錄器更改為LogManager,日志開始按預期方式進入日志文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.