2009-07-07 13 views
0

私はロギングにかなり新しいです。私はイベントログにこのジッバーリッシュを取得します。 ソース(xyAMP)のイベントID(0)の説明が見つかりません。ローカルコンピュータは、リモートコンピュータからのメッセージを表示するために必要なレジストリ情報またはメッセージDLLファイルを持っていない可能性があります。/AUXSOURCE =フラグを使用してこの説明を取得できます。詳細については、ヘルプとサポートを参照してください。次の情報は、イベントの一部です。SOURCE:System.Webイベントログにわかりやすいエラーメッセージを表示するにはどうすればよいですか?

エラーを診断する際にどのようにすればよいでしょうか。 ここに私のロギングコードがあります。

サブのApplication_Error(オブジェクトとしてByVal送信者、EventArgsのとしてByVal e)の 薄暗いCTXのHttpContext = HttpContext.Current

Dim ex As Exception = ctx.Server.GetLastError() 

    Dim data As String = String.Empty 
    Dim referer As String = IIf(ctx.Request.ServerVariables("HTTP_REFERER") IsNot Nothing, ctx.Request.ServerVariables("HTTP_REFERER").ToString(), String.Empty) 
    Dim sForm As String = IIf(ctx.Request.Form IsNot Nothing, ctx.Request.Form.ToString(), String.Empty) 
    Dim sQuery As String = IIf(ctx.Request.QueryString IsNot Nothing, ctx.Request.QueryString.ToString(), String.Empty) 

    data = "SOURCE: " + ex.Source + vbCrLf 
    data += "MESSAGE: " + ex.Message + vbCrLf 
    data += "FORM: " + sForm + vbCrLf 
    data += "QUERYSTRING: " + sQuery + vbCrLf 
    data += "TARGETSITE: " + ex.TargetSite.ToString() + vbCrLf 
    data += "STACKTRACE: " + ex.StackTrace + vbCrLf 
    data += "REFERRER: " + referer 

    Dim eventLogName As String = "xyAMPLog" 
    Dim sourceName As String = "xyAMP" 

    Dim xyAMPLog As New EventLog() 
    xyAMPLog.Log = eventLogName 
    xyAMPLog.Source = sourceName 


    Try 
     xyAMPLog.WriteEntry(data, EventLogEntryType.Error) 

    Catch exc As Exception 
     Console.WriteLine(exc.Message) 
    End Try 

    'ctx.Server.ClearError() 


End Sub 

としてこれをきれいにする任意の提案ですか?

おかげで、サンディエゴの 〜ckが

答えて

-1

私はあなたがMessage Compiler (MC.exe)を使用する必要があると思います。

+0

これはMCと関係がありますか? –

+0

私はMCの問題だと思ってこの質問に入りましたが、それはもっとロガーの問題のようです。 私のMC.exeに関するヒントはここにありません:P – Panky

0

すべての内部例外インスタンスとともに完全な例外を取得するには、ex.ToString()を使用する必要があります。これは、例外が一般に知りたいと思っていることをすべて伝えます。

あなたができる唯一のことは、そのような詳細を持つ各例外の詳細を表示するコードを書くことです。たとえば、WebExceptionクラスには、応答に関するすべての情報を提供するResponseプロパティとResponseが役立つかどうかを示すStatusプロパティがあります。 SqlExceptionには、クエリによって生成されたすべてのエラーのリストを含む詳細の詳細があります。これらの詳細をテキストに変換する特別なケースのコードを書くことができます。

そして、あなたが本当にたくさんの文字列を使用している場合は、文字列の連結にはStringBuilderクラスを使用してください。それははるかに効率的です。

関連する問題