ASP.NET アプリケーションで行をログに書き込みたいと考えています。IIS には、ASP.NET ログ メッセージを記録する組み込みの方法が用意されていますか? System.Diagnostics.Debug.WriteLine() への呼び出しをキャプチャする方法があるのではないかと考えていましたが、それを行う方法が見つかりません。
4 に答える
sysinternalsから DebugViewをキャプチャしDebug.Write
てDebug.WriteLine
使用するには。
http://technet.microsoft.com/en-us/sysinternals/bb896647
もちろん、コンパイルするDebug=true
必要があります。そうしないと、関数はまったく呼び出されません。したがって、Debug.Write は、リアルタイムでのテストとアプリケーションのデバッグにのみ適した方法であり、一般的にエラーのログを保持するためのソリューションではありません。エラーを保存したい場合は、他のユーザーの提案のライブラリを 1 つ使用するか、エラーをイベント ビューアーに直接書き込む必要があると思います。
ps:何らかの理由でバージョン 4.78 が Windows XP で動作せず、4.77 に戻します。
私が通常行うことは、サードパーティのロギング フレームワークを使用し、構成ファイルを使用してフレームワークを構成することです (つまり、再コンパイルする必要はありません)。
私が使用したフレームワークは次のとおりです。
- log4net – Windows イベント ログ、データベース、ログ ファイルなどのさまざまなターゲットに書き込む、いわゆる「アペンダー」が多数あります。
- NLog – log4net よりも使いやすいロギング フレームワーク。
作成中のログ エントリを実際にトリガーするには、アプリケーションに適切なログ関数呼び出しを挿入する必要があります。
質問のタイトルには、IIS と同じログ (ファイル) に書き込みたいと記載されているため、この要件を解決する方法がわかりません(あなたがこれを行う理由を想像できないことを放置しておいてください)
私が知っているように、Debug.WriteLineはデバッグ出力に書き込みます。デバッガーで表示して、そこから保存できます。ログ ファイルは書き込まれません。デバッグ クラス
- デバッグクラスのメンバーは条件付き属性です説明については、この回答を参照してください
あなたはELMAHを試すことができます、
完全にプラグイン可能な、アプリケーション全体のエラー ログ機能です。実行中の ASP.NET Web アプリケーション、またはマシン上のすべての ASP.NET Web アプリケーションに動的に追加でき、再コンパイルや再展開は必要ありません。
または、 Log4Netを試すことができます