私はメインシステムのスレッドでロギング時間を短縮するために、キューシステムとTimerを使用してLoggerを提供しようとしています。しかし、ログメッセージが書き込まれたときではなく、ログメッセージが作成された時刻を取得したいと思います。私はメッセージにタイムスタンプを追加することができましたが、パターンプロバイダを使って書かれたログメッセージをフォーマットできるように、log4netにタイムスタンプを提供するオプションが必要です。log4netの独自のタイムスタンプを提供する方法
タイムスタンプ値を指定することはできません。ロギングする前に簡単にメッセージパターンを書式設定する方法は素晴らしいでしょう。
例えば:
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
- > 2011-12-17 00:00:38511 [TestRunnerThread] DEBUG GlobalLogger 12:00:38.411400 - ライン1
手動でタイムスタンプを割り当てるための理由があるが、私はキューイング・システムを実装したことです。キューイングシステムでは、ロギングイベントは現在の100msのタイマーを使用して行われます。待ち行列システムを使っていくつかのテストをした後、私はlog4netからのタイムスタンプと私が提供するタイムスタンプが200ms +になることを確認します。これは私が100msの違いを示す私のポストで与えた例で見ることができます。 – galford13x
これは、最初にログメッセージをキューに入れていることを意味し、特定の時刻にlog4netにバッチを記録していますか?あなたはアペンダーを実装していませんか?アペンダのアプローチは、そのようなキューイングの実装のための「正しい方法」となるでしょう... – saintedlama
ログメッセージがキューにある場合、特定の間隔でlog4netに追加するバッチロガーを実装しました。より良いアプローチのように聞こえるので、私は自分のアペンダーを作ることに目を通します。先端のおかげで何らかの理由で私はその道を辿ることができなかった。 – galford13x