問題タブ [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.
xml - log4netでRollingFileAppenderを日付とサイズでロールするように設定するにはどうすればよいですか?
複合 RollingFileAppender を使用するように log4net を構成して、現在のファイルが常にlogfile.logという名前になり、後続のすべてのファイルがlogfile-YYYY.MM.dd.seq.logという名前になるようにします。ここで、seqは、ログが特定のサイズを超えた場合のシーケンス番号です。 1日以内に。残念ながら、私はそのようなセットアップの構成にほとんど成功していません。
編集:
現在の構成を以下に貼り付けます。いくつかの回答に基づいて更新されているため、私のニーズに十分に近づくことができます。これにより、次の形式のファイルが生成されます: logfile_YYYY.MM.dd.log.seq
1つの興味深いメモ、設定
true に設定すると、ロガーはファイルを書き込みません。
log4net - Log4Net RollingFileAppender を強制的にロールする
Log4Net のドキュメントによると、 RollingFileAppenderは、メッセージがログに記録されたときにのみログ ファイルをロールします。このファイルにログを記録する必要がありますが、毎日別のデータベースにインポートします。ファイルが必要であり、データをログ ファイルからデータベースに変換する必要があるため、データベース アペンダーを使用できません (直接のコピーではありません)。問題は、午前 0 時以降にログ アクティビティがない場合、ログがロールバックされないことです。インポーターは前日のファイルを探します (このコードを変更することはできません)。そのため、アクティビティがなく、ログがロールされていない場合、インポーターはファイルを見つけられません。ウェイクアップして強制的にロールする別のスレッドを持たずに、ログを真夜中に強制的にロールする方法はありますか? カスタムアペンダーはこれを行うことができますか? できればこれは避けたいです。
log4net - Log4Net を使用すると、ファイル名に日付が 2 回追加されるのはなぜですか?
ログ ファイル名に日付を追加しようとしていましたが、stackoverflow で見つけたいくつかの提案に従うことで機能させることができました。すべて正常に動作しますが、何らかの理由で、最初のファイルには常に日付が 2 回追加されます。
たとえば、 log.2009-02-23.log の代わりに、log.2009-02-23.log.2009-02-23.logを取得します。
とても奇妙でわかりましたが、これは非常に単純なコードです。マルチスレッド環境で実行しているわけではありません。
私のlog4net設定:
理由はありますか?
編集:これをテストしている環境に関する情報を追加したい.
-asp.net
-.netフレームワーク2.0
-Windowsサーバー2003 64ビットサービスパック2
-log4net 1.2.10
log4net - Log4Net: ローリング ファイル アペンダー、拡張子の定義
ログファイルを次のようにしたい: 2009-02-13.log
しかし問題は、.log 拡張子を追加する方法が見つからないことです。
私は多くのことを試しましたが、何も役に立ちません。これは私がこれまでに持っているものです:
logging - 複合ローリング スタイルの Log4Net RollingFileAppender がデータを上書きしている
次のように構成された Log4Net RollingFileAppender があります。
documentationを見ると、デフォルトのローリングスタイルは Compositeであるため、日付だけでなく、特定のサイズ (デフォルトの 10MB) に達したときにローリングするのは理にかなっています。
問題は、サイズに達すると、ログが再開され、その日の前半のデータが失われることです (正午頃にこのサイズに達します)。
これを新しいファイルにロールアウトして、今後のすべてのログ行を MyLog.log に記録しないのはなぜでしょうか? または、ログはローリングされていますが、真夜中に再びローリングされ、日付付きのログが上書きされます (たとえば、10MB に達すると MyLog.log2009-04-08 にローリングされ、真夜中にこの同じファイルが上書きされます)?
を設定します
日付の境界でのみロールするようにするために私がしなければならないことはこれだけですか? Log4Net.config でこれをオンザフライで変更できますか、それともアプリケーションを再起動する必要がありますか? IIS6で実行しています。
performance - Log4Net に何か問題がありますか?
トラフィックの多いいくつかの Web サイトで数年間 Log4Net を使用してきましたが、満足のいく顧客とは言えません。だから、他の誰かが同じ懸念を持っているかどうかを見たかった:
RollingFileAppendor の CPU オーバーヘッドは膨大です。私の Web サイトの中には、1 日あたり 5 ~ 10 GB をトレースする必要があるものがあります。ロギングを有効にすると、CPU 使用率が 2 倍以上になります。なぜそれほど多くのトレースが必要なのかについての議論は避けたいと思います。一部のミッション クリティカルなアプリでは、すべてのトランザクションのすべてのステップを追跡する必要があります。
日付によるローリングは信頼できないことがよくあります (日中は問題なくログに記録されますが、真夜中頃には前日のログ ファイルが台無しになります)。この動作には一貫性がありません。これについて不満を言う人がオンラインで数人いるようですが、誰も良い解決策を持っていないようです.
最後になりましたが、過去 3 年間、Apache Web サイトで新しいリリースを見たことがありません。そのため、これは放棄されたオープン ソース プロジェクトのように見え始めます。これは通常、別のフレームワークに移行する時期であることを意味します。
そのため、Log4Net をあきらめて、Microsoft Enterprise Library などを選ぶことを検討しています。ここに私と同じ問題を抱えている人はいますか?
winapi - Windows での log4cxx 時間ベースのローリング
Windowsで時間に基づいてlog4cxxでファイルをロールすることに成功した人はいますか? 単体テスト ケースと動作から、これは win32 プラットフォームではまったく機能しないことがわかります。
間違いを犯した場合に備えて、私の設定は以下のとおりです。
ありがとう!
log4net - Log4Net ローリング ファイル アペンダー ローリングの問題
次のlog4net構成があります:
データは常にログ ファイルに記録され、正常にロールされますが、最終的には次のようなロール ファイルになります。
ファイルを次のようにしたい:
locking - 断続的な log4net RollingFileAppender ロック ファイルの問題
開発マシンと運用マシンで、ログ ファイルがログに記録されない断続的な問題が発生しています。
Visual Studio を使用して開発およびデバッグを実行すると、VS 出力ウィンドウに次の log4net エラー メッセージが表示されます。
別のプロセスで使用されているため、プロセスはファイル 'C:\folder\file.log' にアクセスできません。
構成セクションは次のようになります。
この問題に対する現在の回避策は、最後のログ ファイルの名前を変更することです。もちろん、(前述のファイル ロックのために) これが失敗することが予想されますが、通常はそうではありません。aspnet_wp.exeプロセスからのロックが原因で、名前の変更が 1 回か 2 回失敗しました。
log4net 構成セクションを以下に示します。
前述のように、これはマシンで断続的に見られますが、問題が発生すると持続します。
java - Tomcat 6 stdout.logファイルをlog4jDailyRollingFileAppenderのように動作させることはできますか?
Tomcat 6のWindowsインストールを使用しています。デフォルトでは、アプリのlog4j出力は${catalina.base}/logs/stdout_.logファイルに送られます。このログファイルは、Tomcatを再起動したときにのみロールオーバーされ、ファイル名には常に日付が含まれます。
DailyRollingFileAppenderのように動作して、ロールオーバー時にファイルの名前を変更することをお勧めします。そうすれば、Notepad ++を開いて今日のログを確認できます。これは、Notepad++が昨日同じファイルを開いたことを記憶しているためです。:)
log4jに別のアペンダーを作成できることはわかっていますが、最終的にはstdout.logと別のログファイルになり、両方のファイルにログを記録するとパフォーマンスがわずかに低下するのではないかと心配しています。swallowOutput = trueをcontext.xmlに追加しようとしましたが、それでもすべてのログがstdout.logに記録されます。何か案は?