以下は、私が作成した log4j2.xml ファイルです。非同期ログ用に async_file.log を構成し、通常の同期ログ用に regular_file.log を構成しました。問題は、ログ ファイルが作成されるが、ファイルのサイズがゼロで、ログがないことです。すべてのログは、構成した 2 つのファイル (async_file.log と regular_file.log) ではなく、server.log ファイル (JBOSS) に送信されます。
- 構成したログ ファイルにログが記録されない理由を教えてください。これについて私を助けてください。または、方向性やヒントを教えてください。
以下に示すように、同じクラス ファイル内の 2 つの異なるロガーを DCLASS という名前で呼び出しています。
private static final transient Logger LOG = Logger.getLogger(DCLASS.class);
private static final transient Logger ASYNC_LOG = Logger.getLogger("ASYNC");
クラス パスに次の 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>