1

以下は、私が作成した 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>
4

1 に答える 1