未処理の例外を WinForms アプリケーションのログ ファイルに記録して、例外の原因を簡単に特定するにはどうすればよいですか?
			
			1445 次
		
3 に答える
            4        
        
		
まず、未処理の例外をキャッチする必要があります。このコードの VB.Net バージョンをメイン プログラムに追加します。
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ThreadException += ApplicationThreadException;
AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionHandler;
次に、イベント ハンドラーを追加します。
static void UnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs e)
{
    Exception ex = e.ExceptionObject as Exception;
    if (ex != null)
    {
       Console.WriteLine("Unhandled exception: {0}", e.Exception);      
    }
}
static void ApplicationThreadException(object sender, ThreadExceptionEventArgs e)
{
    Console.WriteLine("Unhandled application exception: {0}", e.Exception);
}
次に、選択したログ方法でエラーをログに記録できます.. (C# コードで申し訳ありません!)
于 2012-10-16T10:30:24.990   に答える
    
    
            2        
        
		
、Sub Mainまたはスタートアップ フォームのコンストラクタに、次のコードを追加します。
AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf UnhandledExceptionHandler
次に、次のメソッドを にSub Main追加するか、他のクラス/フォームに共有メソッドとして追加します。
Public Sub UnhandledExceptionHandler(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs)
    If TypeOf e.ExceptionObject Is Exception Then
        Dim ex As Exception = CType(e.ExceptionObject, Exception)
        ' Log the exception
    End If
End Sub
于 2012-10-16T11:00:21.307   に答える
    
    
            1        
        
		
何かをログに記録したい場合は、Nlog を使用します。これは、ログ メッセージをファイルや電子メールなどに書き込みます。リンク: http://nlog-project.org/
ドキュメント: https://github.com/nlog/nlog/wiki/Tutorial
次に、これを簡単に行うことができます:
Private Logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger
try
'do stuff
catch
logger.fatal("Messagedescription")
end try
これにより、nlog.config ファイルで指定されたファイルにメッセージが自動的に書き込まれます。ログを表示するには、任意のエディターまたは logExpert を使用できます。
于 2012-10-16T11:38:29.163   に答える