問題タブ [fileappender]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1411 参照

java - log4j 1.2.17 および java8u162 でログ ファイルがロールオーバーされない

本番環境で、状況によってはログ ファイルがロールオーバーされないという問題に直面しています。Log4j バージョン 1.2.17 と apache.commons-logging を使用しています。ファイルをロールオーバーするためのカスタム アペンダーが作成されます。アペンダーは、Log4j の FileAppender を拡張しています。subAppend(LoggingEvent event) メソッドのアルゴリズムは次のとおりです。

Log4j.properties ファイルは次のとおりです。

観察によると、システムに日付の変更がありました。日付は、現在の日付の 3 か月前に設定されました。

5 月 11 日の 12 時間後、日付は現在の日付に変更されました。その時までに、ファイルのタイムスタンプは 3 月 10 日に変更されました。RollOver がなかったため、次のチェックはまだ 2018 年 5 月 11 日 00:00 でした。しかし、5 月 12 日の 00:00 に、ファイルは 3 行目の条件に従ってロールオーバーされ、新しいファイルが作成されたはずですが、発生しませんでした。また、ファイルが最大サイズに達していました。それ以降、システムが再起動されるまでログはありませんでした。

Java のバージョンはjava8u162です。Javaに関連しているかどうかを示す投稿は見つかりませんでしたが。

同じシナリオをテスト環境で再現しようとしましたが、すべてが期待どおりに機能しています。

Log4jでこのような問題に直面した人はいますか? あなたの情報を共有してください。前もって感謝します。

0 投票する
2 に答える
583 参照

log4net - log4net の FileAppender および RollingFileAppender の可変ファイル名

log4net.Util.PatternString を使用して、log4net を使用して変数名のファイルにログを記録しようとしています。アペンダーの構成は次のようになります。

この構成では、ファイルは次のような名前で正常に作成されます: MyLogFile_PID12345.log

%processid、%random{8}、%env{SOME_ENV_VAR}、%property{MYPROPERTY}、および %appsetting{someKey} を正常に使用しました。

しかし、日付を挿入したいのですが、何を試しても、%date、%utcdate、%date{DATE}、%utcdate{DATE}、%date{ISO8601 のいずれも理解できないようです。 }、%date{ABSOLUTE}、%date{{HH:mm:ss}、または基本的に任意の形式の日付。

たとえば、何が間違っているか:

また、変換パターン構成に別のノードを使用しようとしましたが、役に立ちませんでした。

現在、カスタム プロパティ (%property{MY_CUSTOM_PROPERTY_WITH_THE_NAME_I_WANT} を使用) を使用して同様の効果を実現していますが、やややり過ぎであることを除けば、何が間違っているのだろうかと思います。さまざまなコンピューターとさまざまなアプリケーションで試しましたが、意図したとおりの結果が得られません。

ところで、私の本当の目的は RollingFileAppender で使用することですが、簡単にするためにここで FileAppender について質問 (および試行) しています。

何か助けはありますか?

0 投票する
0 に答える
73 参照

logging - log4j を 2.15.0 にアップグレードすると InvalidPathException が発生する

log4j-2.13.2 から 2.15.0 へのアップグレード中に以下の問題が発生します。

要素 RollingFile の型クラス org.apache.logging.log4j.core.appender.RollingFileAppender のプラグインを作成できませんでした: java.nio.file.InvalidPathException: インデックス 5 の不正な文字 <:>: ${web:rootDir}\ABC\ abcxyz

${web:rootDir} の代わりにどのパターンを使用する必要があるかを提案できますか? ${web:rootDirs} が解決されていません。

シナリオ 1 LoggerContext が作成されましたが、いくつかのユース ケースのために後で他のモジュール用に作成され、既存のロガー コンテキストが削除され、新しいコンテキストが初期化されました。初期化中に、WebLookup が Servletcontext を取得できないため、この問題が発生します。log4j-2.13.2 では期待どおりに動作していました。

removeExistingLoggerContext(); Configurator.initialize(context.getServletContextName(), getClass().getClassLoader(), filePaths, context); 古いloggerContextを削除した後、log4j-2.15.0を使用してweblookupを実行できないため、問題が発生しています