問題タブ [log4net-appender]
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.
logging - log4net RollingFileAppender を構成してサイズをロールオンしますが、datetime を追加しますか?
初期ログ ファイルの名前が次のようになるように、log4net ローリング ログ アペンダーを構成したい:-
log_{current_datetime}.log
ファイルのサイズが 25MB に達したら、新しいログ ファイルを同じ形式で作成し、以前のログ ファイルの名前を変更しないでください。
log4net アペンダーでこのような設定を行うにはどうすればよいですか?
c# - Log4net を使用したイベント ビューアーのログ情報
現在、Log4net (EventViewerAppender) を使用してイベント ビューアーに特定の情報を記録するプロジェクトに取り組んでいます。ErrorとFatalを使用してログを記録しても問題はありませんが、 Infoを使用してログを記録しようとすると、ログが表示されません。構成を確認し、インターネット全体を調べましたが、FileAppender を使用して Info をログに記録している人しか見つかりません。
構成ファイルで次の構成を使用しています。
ここで何が間違っているのかわからないので、どんな助けも役に立ちます。
ありがとう!-dckwlff
編集
ずっと動いていたようですが、イベント ビューアで間違ったビューを見ていました。
c# - 個別のログ ファイルに書き込むように log4net をプログラムで構成する
この例に従って、 log4net をプログラムで構成しています。ただし、情報とエラーを別々にログに記録したいので、セットアップ方法を次のように変更しました。
私のコードでは、以下のように初期化しました
問題は、infoLog に出力したものが、infolog.log ファイルと errorlog.log ファイルの両方に出力され、その逆も同様であることです。構成の何が問題になっていますか?
log4net - 名前変更ポリシーなしで、プロセス ID と日付によって Log4Net を介して動的ログ ファイルを作成する
私は特定のユースケースの解決策を求めて Stack とネットを探し回っていますが、まだ見つけていません。
Log4Net 1.2.10 CastleCore を使用する IIS 6.1 .NET アプリケーション
私の要件は、ファイル名にプロセス ID、日付、および時間を使用して、1 時間あたりのプロセス ID に基づいて一意のファイル名を作成することです。ただし、プロセス ID がその時間内に変更された場合は、そのプロセス ID と日付/時間に基づいて新しいファイル名を作成します。
IIS の Web ファームでサービスを実行しています。これには 4 つのワーカー プロセスが同時に実行されており、2 つのアプリ プールとプールごとに 2 つのプロセスがあります。そのため、4 つのログ ファイルが同時に書き込まれています。
私の現在の構成(以下)は、ある程度まで機能するようです。ファイルが作成され、同時にログに記録されます。1 時間の間にプロセス ID ごとに約 200MB のログが記録されるという点で、ログはかなり重くなります。
1 時間の間に、2 つのファイルのうちの 1 つが単に書き込みを停止します。デッドロック、競合状態、または衝突を防ぐ必要がある最小限のロックと異なるプロセス ID を設定しました。
私の現在の設定は以下です
生成されるログの形式は次のとおりです。IWSGServices[8977]-23.03.15.14.log
上記の例では、プロセス ID 8977 の 1400 時間のログです。1500 で、使用中のプロセス ID と新しい時間スタンプごとに新しいログが生成されます。
log4net デバッグ モードでロギングが停止すると、次のエラーが何度も発生します。
log4net内でこのエラーの同様のケースを見つけていないため、使用例は限られています. I/O に何らかの問題があるか、log4net (少なくともこの古いバージョン) が私の使用例を満たすことができないと思われます。ただし、最新バージョンがいずれかになるとは確信していません。新しいバージョンとキャッスル コアの実装で報告された問題のため、log4net はまだアップグレードしていません。
StaticLogFileName=true を設定すると、日付スタンプなしでファイル名が作成されます。つまり、WSGServices[8699] で、正時に IWSGServices[8977]-23.03.15.14.log に名前が変更されます。これは、これを新しいファイルと見なして再度解析するログ リーダーがあるため、ファイルの名前を変更したくないためです。
ロック モデル、ローリング スタイル、日付パターンの有無を含め、多数の組み合わせを試しましたが、上記の構成が最も近いようです。1 分ごとにロールする場合、この構成が機能する可能性がありますが、これにより 1 日あたり 3000 を超えるログ ファイルが生成され、実用的ではありません。
私が使用している現在のバージョンの log4net でこれを実現したいのですが、2.11 にパッチを適用すると、PreserveLogFileNameExtension パラメータの設定がありますが、ファイルの名前は変更されますが、拡張子の後ではありません。
私が見た 1 つの提案は、IIS プール設定の Disable Overlap Recycle を false に設定することでしたが、アプリ プールのリサイクルでのみ機能するため、これは何の違いもありませんでした。
別の方法として、各アプリケーション プールからの両方のプロセスを 1 つのログ ファイルに記録することもできますが、書き込みの量が多いため、この解決策はさらにプロセスの衝突がなければ機能しないと思います。
私が何かを見逃した場合、または誰かが現在またはそれ以降のlog4netバージョンでこれを使用している場合は、助けていただければ幸いです。
c# - Adding date in filename of RollingFileAppender files
Hi I am now using log4net for some time. This is my Logger:
As you see, this Appender creates logfiles with maxsize 10K and it will also be rolled daily. This Configruation generates logfilenames as follows:
Log.log_2015-03-04,
Log.1.log_2015-03-04,
- Log.2.log_2015-03-04,
- Log.log_2015-03-03,
- Log.1.log_2015-03-03,
- Log.2.log_2015-03-03
BUT The today created logs look like this
- Log.log,
- Log.1.log,
- Log.2.log
What I want is that filenames look like this : Log_yyyy-mm-dd_nr.log
So how do I change that?