問題タブ [rollingfileappender]
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.
c# - TextWriterTraceListener トレース ファイルが大きすぎます
C#System.Diagnostics.TextWriterTraceListener
を使用してトレースを出力しています。しかし、トレース ファイルが大きくなりすぎます (数百 MB)。TextWriterTraceListener
トレース ファイルが大きくなった場合に出力を別のファイルに書き込むように、の動作を変更したいと考えています。たとえば、元のトレース ファイルは「output1.txt」で、100MB を超える場合、TextWriterTraceListener は「output2.txt」に書き込む必要があります。
同様の問題に遭遇したことがありますか?エレガントなソリューションはありますか?
c# - Log4Net RollingFileAppender を毎週ローリングするように設定する
文字列は、が受け入れるDatePattern
ものである必要があります。SimpleDateFormatter
残念ながら、これはそのままでは、境界を週番号に設定できる機能が含まれていないことを意味します。SimpleDateFormatter
C# でこの値を取得する方法はありますが、 を拡張したり、 の別の実装を提供しIDateFormatter
て代わりに (またはカスタム でさえ) 使用したりできるかどうかは明らかではありませんRollingFileAppender
。
では、Log4NetRollingFileAppender
を毎週ローリングするにはどうすればよいでしょうか?
log4net - WPF アプリで分離ストレージを使用するように log4net を構成する
log4net の RollingAppender を使用して分離ストレージに書き込みたいのですが、そのように log4net を構成する方法がわかりません。明確にするために、インストール済みの WPF アプリケーションでこれを実行しようとしているので、Silverlight ユーザーの一部が既に投稿したいくつかの問題はありません。
この回答で説明されているように、ファイルパスを動的に設定するのが最善の方法だと思いましたが、もちろん、分離ストレージのファイルパスにアクセスすることはできません。
分離ストレージを使用するように log4net RollingAppender をセットアップできるかどうか、誰でも確認できますか?
log4j - プロパティを介してlog4j RollingFileAppenderを構成する実際の例が必要です
ロギングには log4j を使用し、構成にはプロパティ ファイルを使用しています。現在、ログ ファイルが大きすぎます (ログ ファイルには 3.5 GB は大きすぎます)。したがって、RollingFileAppender を使用する必要があると思いますが、そうすると、ログ ファイルが大きくなり続けます。設定を誤ったと思います。RollingFileAppenderを構成する実際の例はありますか?
記録のために、私の現在の構成は次のようになります。
RollingFileAppender に代わるものも良い解決策です。
dynamic - RollingFileAppender の動的ファイル命名に関する log4net の問題
3 つの異なるタイプのログを作成するために、構成ファイルに 3 つのアペンダーがあります。グローバル コンテキスト プロパティを設定することで、3 つのアペンダーのそれぞれでファイルの動的命名を使用しています。場合によっては、1 つのアペンダーに対してログ ファイル名を動的に設定する必要があります。
1つのアペンダーのみにファイル名を設定すると、名前が動的に設定された実際のログファイルに加えて、データのない「null」という名前の別のファイルが作成されます。示されているように構成ファイルを作成しました。
VB.NET コードでは、ファイル名を次のように設定します。
この場合、「file1.log」と「null」という名前の別の空のファイルが作成されます。これは、実行時にいずれかのアペンダー ファイル名を設定している場合にのみ発生します。どんな助けでも感謝します。
java - キャッチされた例外によってlog4jアペンダーが閉じられている
歴史的背景:この問題は、私が思っていたものとはまったく異なりました。以下に原因と解決策を記しますが、参考までに元の投稿を残しておきます。
.properties ファイルのディレクトリを定期的にポーリングし、その構成に基づいて SQL クエリを実行し、電子メールを送信するための単純なフレームワークを開発しています。各 .properties ファイルには同じ範囲の操作があるため、それらはすべて同じ Task クラスによって解釈されます。ただし、それぞれが異なる論理操作を表しているため、それぞれ別のログ ファイルを取得します。
これは、log4j RollingFileAppender の 1 つのインスタンスを共有し、.properties ファイルの値に基づいてその出力ファイルを動的に変更することによって実現されます。これはシングル スレッド アプリケーションであるため、問題なく動作します。
ただし、特定の状況では、この RollingFileAppender が閉じられ、ログが記録されないことを除けば、アプリケーションは何も知らずに継続することに気付きました。通常、このサービスは Linux サーバーでバックグラウンド プロセスとして実行されているため、コンソール出力のおかげで、これを実際に確認できたのは 1 回だけです。何が起こったかは次のとおりです。
1) メイン クラスである StartScheduler は、毎分 TaskPoller の新しいインスタンスを作成します。
2) TaskPoller はディレクトリをスキャンし、各 .properties ファイルから小さな情報をロードして、実行するかどうかを決定します。また、Logger.getLogger(TaskPoller.class) を介して取得する独自の RollingFileAppender もあります。Task を実行する必要がある場合は、Task オブジェクトをインスタンス化し、実行する特定の .properties ファイルを渡します。
3) タスクはその RollingFileAppender を取得し、fileAppender.setFile("newtaskname.log") および fileAppender.activateOptions() を呼び出して、出力ファイルの場所を変更します。次に、その実行中に、次のようなことが起こります。
何が起こっているのかというと、DBDAO.Connect() 中に、com.mysql.jdbc.exceptions.jdbc4.CommunicationsException (またはロードされている jdbc クラスからのその他の予期しない例外) が発生することがあります。これは Connect() では捕捉されませんが、Execute() では捕捉されます。
どういうわけか、このプロセスにより、Task の RollingFileAppender が閉じられます。一貫性のある安定した通常の操作とは対照的に、この状況に特有であると私が考えることができる唯一のことは、スローされる例外が Connect() によってスローされると宣言されていないことです。しかし、それによって log4j Appender が閉じられるべきではないと思います。
だから私の質問は、このアペンダーが構成とは関係のないメソッドで予期せず終了する原因は何ですか?
--編集-- 完全に見当違いだったようです。問題は、TaskPoller を毎分起動させるために使用していた Quartz と log4j の間の相互作用のどこかにあります。その原因はまだ完全には理解できていませんが、[この解決策][1] はこの問題を解決しているようです。今まで観測された問題として現れなかっただけなので、最近起こっていることと関係があると思いました。
log4net - 書き込み中にローリングログファイルを開く
書き込み中のローリングログファイルを表示/表示するアプリケーションを誰かに教えてもらえますか?
そこにアプリがあることは知っていますが、グーグルを使用すると、ログへの書き込み/ログの作成について質問があります。[これはWindowsであり、Unixではありません]
java - 真夜中過ぎに Log4j RollingFileAppender をきれいに強制的にロールしますか?
Log4j RollingFileAppender の通常の動作は、最初のログ メッセージが別の日に発生したときにロールすることですが、何も起こらなかったとしても、日付ごとに空のログ ファイルが表示されると、暖かく曖昧に感じる人もいます。ログにダミーメッセージを書き込まずに、真夜中過ぎに強制的にロールする方法はありますか?
logging - Log4j DailyRollingFileAppender
現在、1時間ごとにロールオーバーするように構成されているログファイルがあります。最初に作成されたときはlogfile.logと呼ばれ、ロールオーバーするとlogfile.log.YYYY-MM-DD-HHに名前が変更されます。
私が望むのは、logfile.logではなくlogfile.log.YYYY-MM-DD-HH命名規則を使用してログファイルをすぐに作成することです。
何か案は?
time - サーバーの日付ではなく utc の日付でファイルをローリングする
これは私のlog4net.xmlファイルです
ログの日付は UTC ですが、ファイルはサーバー時間の翌日にロールオーバーされます。これにより、数時間のログが間違ったファイルに記録されます。
UTC 時間に応じてファイルをロールオーバーするにはどうすればよいですか?