方法 : Visual Basic で例外をログに記録する

更新 : 2007 年 11 月

My.Application.Log オブジェクトおよび My.Log オブジェクトを使用すると、アプリケーション内で発生した例外に関する情報をログに記録できます。以下の例では、My.Application.Log.WriteException メソッドを使用して、明示的にキャッチした例外および未処理の例外をログに記録する方法を示します

トレース情報をログに記録するには、My.Application.Log.WriteEntry メソッドを使用します。詳細については、「WriteEntry メソッド (My.Application.Log and My.Log)」を参照してください。

処理した例外をログに記録するには

  1. 例外情報を生成するメソッドを作成します。

    Public Sub ExceptionLogTest(ByVal fileName As String)
    End Sub
    
  2. Try...Catch ブロックを使用して例外をキャッチします。

    Try
    Catch ex As Exception
    End Try
    
  3. 例外が発生する可能性のあるコードを Try ブロックに記述します。

    Dim 行および MsgBox 行をコメントから外すと、NullReferenceException 例外が発生します。

    ' Code that might generate an exception goes here.
    ' For example:
    '    Dim x As Object
    '    MsgBox(x.ToString)
    
  4. Catch ブロックで、My.Application.Log.WriteException メソッドを使用して例外情報を書き込みます。

    My.Application.Log.WriteException(ex, _
        TraceEventType.Error, _
        "Exception in ExceptionLogTest " & _
        "with argument " & fileName & ".")
    

未処理の例外をログに記録するには

  1. ソリューション エクスプローラでプロジェクトを選択します。[プロジェクト] メニューの [プロパティ] をクリックします。

  2. [アプリケーション] タブをクリックします。

  3. [アプリケーション イベントの表示] をクリックしてコード エディタを開きます。

    ApplicationEvents.vb ファイルが開かれます。

  4. コード エディタで ApplicationEvents.vb ファイルを開きます。[全般] メニューの [MyApplication イベント] をクリックします。

  5. [宣言] メニューの [UnhandledException] をクリックします。

    アプリケーションで、メイン アプリケーションの実行前に UnhandledException イベントが発生します。

  6. UnhandledException イベント ハンドラに My.Application.Log.WriteException メソッドを追加します。

    My.Application.Log.WriteException(e.Exception, _
        TraceEventType.Critical, _
        "Application shut down at " & _
        My.Computer.Clock.GmtTime.ToString)
    

使用例

次の例は、処理した例外をログに記録するコードの全体です。

Public Sub ExceptionLogTest(ByVal fileName As String)
    Try
        ' Code that might generate an exception goes here.
        ' For example:
        '    Dim x As Object
        '    MsgBox(x.ToString)
    Catch ex As Exception
        My.Application.Log.WriteException(ex, _
            TraceEventType.Error, _
            "Exception in ExceptionLogTest " & _
            "with argument " & fileName & ".")
    End Try
End Sub

次の例は、未処理の例外をログに記録するコードの全体です。プロジェクト デザイナを使用すると、コード エディタでアプリケーション イベントにアクセスできます。詳細については、「方法 : アプリケーション イベントを処理する (Visual Basic)」を参照してください。

Private Sub MyApplication_UnhandledException( _
    ByVal sender As Object, _
    ByVal e As ApplicationServices.UnhandledExceptionEventArgs _
) Handles Me.UnhandledException
    My.Application.Log.WriteException(e.Exception, _
        TraceEventType.Critical, _
        "Application shut down at " & _
        My.Computer.Clock.GmtTime.ToString)
End Sub

参照

処理手順

方法 : ログ メッセージを書き込む

チュートリアル : My.Application.Log による情報の書き込み先の確認

チュートリアル : My.Application.Log による情報の書き込み先の変更

概念

Visual Basic でのアプリケーション ログの使用

参照

My.Application.Log オブジェクト

My.Log オブジェクト

WriteEntry メソッド (My.Application.Log and My.Log)

WriteException メソッド (My.Application.Log および My.Log)