0
他の関連する質問を見直しましたが、回答が見つかりませんでした。 https://logging.apache.org/log4j/extras/apidocs/org/apache/log4j/rolling/RollingFileAppender.htmlのjavadocsが間違っているか不完全なようです。少なくとも要素はそれに偽の二重引用符があるように見えます。 私はデバッグモードで起動しており、すべてが正常に見えます。しかし、私はログファイルを見つけることができません。私たちはうまく動作している他のカスタムアペンダーを持っていますが、私はそれらをOTBソリューションに置き換えようとしています。extras RollingFileAppenderがファイルを作成していません
<appender name="file" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="threshold" value="debug" />
<rollingPolicy name="file" class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="logs/My_Server.%d{yyyy-MM-dd-hh}.log"/>
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} %r [%t] %-5p %c{1} %x - %m%n"/>
</layout>
</appender>
<appender name="ASYNCfile" class="org.apache.log4j.AsyncAppender">
<param name="BufferSize" value="500"/>
<param name="blocking" value="false"/>
<appender-ref ref="file"/>
</appender>
<root>
<priority value="INFO"/>
<appender-ref ref="ASYNCfile"/>
<appender-ref ref="console"/>
</root>
とデバッグコンソール: - 発見されるだけのファイルがない私は、コンソール出力リレーでこれに関連するエラーが表示されない
log4j: Attaching appender named [file] to appender named [ASYNCfile].
log4j: Class name: [org.apache.log4j.rolling.RollingFileAppender]
log4j: Setting property [threshold] to [DEBUG].
log4j: Setting property [fileNamePattern] to [logs/My_Server.%d{yyyy-MM-dd-hh}.log].
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d{ISO8601} %r [%t] %-5p %c{1} %x - %m%n].
log4j: setFile called: logs/My_Server.2017-07-17-05.log, true
log4j: setFile ended
は、ここに私の設定です。
実際、私はハードドライブを検索し、予期しない場所にログファイルを配置しました。 Eclipseインストールディレクトリにあります。私はTomcatを実行していて、他のアペンダーは、サーバーを追加するときにEclipseが作成するTomcatランタイム・フォルダーにログを書き込んでいます。今私は、私が気づいていることを何も指定していないときに、なぜ彼らが2つの異なる場所に書き込んでいるのかを追跡する必要があります。 (他の人は私の前にlog4jを設定しています...) – Edward
FileNamePatternの値は絶対パスでなければならないという点で、他の関連記事は指摘しています。少なくとも、ファイルがどこにあるのか混乱することはありません。 Javadocは、この値が相対的である場合、この値の処理については説明しません。最良のアドバイスは、$ {catalina.base}/logs/yourFileNamepatternを使用することです。うまくいけば、この投稿は他の人に役立つはずです。また、トラブルシューティングに役立つlog4j構成のdebug = trueフラグも使用してください。 – Edward