1

.NET の組み込みのトレース メカニズムを使用して、プログラムの実行をトレースしています。問題は、トレース ファイルが非常に急速に数 MB になる可能性があることです。ファイルが特定のポイントを超えたときにファイルを切り詰める効率的な方法はありますか? 何かが書き込まれるたびにチェックを入れることを考えました (TraceListener から継承するカスタム クラスがあります) が、パフォーマンスが大幅に低下する可能性があります。多分タイマーはより良い解決策でしょうか?

誰にもアイデアはありますか?

4

2 に答える 2

4

カスタム トレース リスナーを実装します。

かなり一般的なタスクを解決する方法を見てみましょう: 継続的に生成されるトレース ファイルの管理です。デフォルトのトレース リスナーの実装は、常にアクティブであることが想定されているサービス アプリケーションにはあまり適していません。アプリケーションが大量のトレース出力を生成すると、遅かれ早かれ、この情報によってすべてのディスク領域が使い果たされます。

http://www.codeproject.com/KB/dotnet/customnettracelisteners.aspx?display=印刷

この例では、次のようにログ チャンクを作成できます。

MyTrace.txt (recent trace information); 
MyTrace00.txt (trace history backup); 
MyTrace01.txt (trace history backup); 
and so on...

もちろん、バックアップ ファイルを捨てることもできます。

(ヒント: log4net (こちら) とEnterprise Library Logging Block (こちら) を試してください!)

于 2009-04-07T15:01:51.513 に答える
1

EventLog はこの方法で簡単に自動的に循環できるため、おそらく Event Log トレース リスナーを使用します。

于 2009-04-07T14:59:45.183 に答える