0

ログに記録する必要がある .NET のアプリケーションがあります。特定のイベントと例外をログに記録したい。この目的のためにlog4netが強く推奨されていることをオンラインで見ました。txt ファイルへのログ記録をすぐに開始するように設定しました。

しかし、これは私の目的には十分ではありません。私のアプリケーション内から、生成されているすべてのログのライブ リストを表示するモニターを表示できるようにしたいと考えています。

log4netがこれに最適なアプローチである場合? そうでない場合、何ですか?

ログイベントを消費してデータを表示する独自の方法を見つけることに問題はありませんが、ログイベントをモニターフォームに送信する最良の方法がわかりません。

4

1 に答える 1

3

log4netと互換性のある優れたロギング モニターである log2console を参照してください。log4net リモート処理アペンダーをリッスンし、データを非常にうまく表示できます。

プログラム内から独自のモニターを実装する必要がある場合は、MemoryAppenderを試すことをお勧めします。ここに役立つ情報がいくつかあります(質問は実際には非常に優れたチュートリアルです)

ご覧のとおり、彼は 2 つのアペンダーをセットアップしました。1 つはファイルにログを記録し、もう 1 つはメモリ アペンダーにログを記録します。モニターでは、次のコードを使用してアペンダーへのハンドルを取得できます。

Hierarchy hierarchy = LogManager.GetRepository() as Hierarchy;
MemoryAppender mappender = hierarchy.Root.GetAppender("MemoryAppender") as MemoryAppender;

mappender.GetEvents()また、 でクリアする前に、 を使用してバックグラウンド スレッドで新しいイベントを周期的に取得できますmappender.Clear()。これはスレッド セーフではないことに注意してください。そのため、ロギング用のスレッド セーフ ラッパーを作成することをお勧めします。

于 2013-04-25T11:02:40.793 に答える