2012-04-13 38 views
7

私のASP.NETアプリケーションでは、ログをどこかのログに書きたいと思っています。 IISはASP.NETログメッセージを記録するための組み込みの方法を提供していますか?私は、System.Diagnostics.Debug.WriteLine()への呼び出しをキャプチャする方法があるかもしれないと思っていましたが、それを行う方法が見つかりません。ASP.NETアプリケーションからIISログに書き込む

答えて

8

Debug.WriteおよびDebug.WriteLineをキャプチャするには、DebugView from sysinternalsを使用します。あなたがDebug=trueか、他の機能を使用してコンパイルする必要がある。もちろん、

http://technet.microsoft.com/en-us/sysinternals/bb896647

はまったく呼び出されません。したがって、Debug.Writeは、リアルタイムでテストするための良い方法であり、アプリケーションをデバッグするのではなく、一般的なエラーログを残すソリューションではありません。エラーを保存したい場合は、他のユーザー提案の1つのライブラリーを使用するか、イベント・ビューアーにエラーを直接書き込む必要があると思います。

PS:が何らかの理由でバージョン4.78は、私のWindows XP上で動作していないと私はDebug.WriteLineがデバッグ出力に書き出し知っているように、私は4.77

+0

これは完璧です、ありがとうございます。 – McGarnagle

+0

これはWindows 10と互換性がありますか? – Milad

+0

@Miladはい、それは開発者として非常に頻繁に使用されます。なんらかの理由で何かが見えない場合は、管理者モードでアプリケーションを実行してください。 – Aristos

0

に切り替えます。あなたはあなたのデバッガでそれを見ることができ、そこからそれを保存することができます。それは

はアプリケーション全体のエラーログ機能である、あなたは ELMAHを試すことができます。.. Debug Class

  1. デバッグクラスメンバーのある条件Attritubte See this Answer for explanation

をログファイルに書き込みません。完全に を差し込み可能です。実行中のASP.NET Web アプリケーション、またはマシン上のすべてのASP.NET Webアプリケーション( )に動的に追加して、再コンパイルや再デプロイメントを行う必要はありません。

か、私は通常何Log4Net

1

を試すことができますサードパーティのロギングフレームワークを使用して、設定ファイル(再コンパイルする必要はありませんつまり)を介してフレームワークを構成することです。私が使用している

フレームワークは、以下のとおりです。

  • log4net - Windowsイベントログやデータベースやログファイルなどの異なるターゲットに書き込むための、いわゆる「アペンダ」をたくさん持っています。
  • NLlog - log4netよりも使いやすいロギングフレームワークです。

実際に作成されるログエントリをトリガするには、アプリケーションに適切なログ関数呼び出しを挿入する必要があります。

質問タイトルには、IISと同じログ(ファイル)に書き込むことが記載されているので、私はこの要件を解決する方法が全くわかりません(これを行う理由を想像できません)。

6

Response.AppendToLog()を試すと、IISログファイルに書き込まれます。 追加のソフトウェアを必要としないのでうれしいです。唯一の欠点は、ログファイルが巨大になる可能性が高いことです。 私は主に、IISログに記録されたコンテンツを識別するためにそれを使用します。例えば。ログイン時にユーザー名を書き、そのセッションを追跡できます。

+1

'Response.AppendToLog()'の使用時にログが保存される場所 – Abhijeet

+0

出力はIISログファイルのログ行に追加されますが、URLエンコードされます(W3C書式スペースは '+'などで置き換えられます)。それを慎重に見てください:) – rustyx

関連する問題