6

開発中のシステムにlog4j2でログファイルを作成しようとしています。サイトの指示に従っていますが、実行してもエラーは発生しませんが、ログは設定した場所に保存されません(例: " D:\logs\app.log")。

これが私のlog4j.xmlです

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
  <appenders>
    <RollingFile name="MyRollingFile" fileName="D:/logs/app.log"
                 filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
      <PatternLayout>
        <pattern>%d %p %C{1.} [%t] %m%n</pattern>
      </PatternLayout>
      <Policies>
        <TimeBasedTriggeringPolicy />
        <SizeBasedTriggeringPolicy size="250 MB"/>
      </Policies>
      <DefaultRolloverStrategy max="20"/>
    </RollingFile>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </appenders>
  <loggers>
    <logger name="Log_RollingFile" level="TRACE" additivity="false">
      <appender-ref ref="MyRollingFile"/>
    </logger>
    <root level="ERROR">
      <appender-ref ref="Console"/>
    </root>
  </loggers>
</configuration>

私がしようとしました :

  • app.log を削除して、構成 (D:\logs\app.log) が機能するかどうかを確認します。アプリケーションを実行するとapp.logが作成されるので、構成が表示され、Javaアプリケーションで行ったlog.infoを保存していないことが唯一のことだと思います
  • root レベルを「TRACE」に変更すると、log.info が出力されます。

[編集:]

クラスパスにこれらのライブラリもあります

  • log4j-api-2.0-beta3.jar
  • log4j-core-2.0-beta3.jar

RollingFile 構成またはライブラリ (おそらく) で何か不足していますか?

前もって感謝します。

4

1 に答える 1

4

ロガー名が正しくありません。

リンク先の構成手順で説明されているように、ログをキャプチャするパッケージ/クラスに従ってロガーに名前を付ける必要があります。

彼らの例では、名前付きのロガーは、パッケージ内com.foo.Barのクラスのすべてをレベル付きでログに記録します。Barcom.fooTRACE

于 2012-11-25T13:00:07.930 に答える