トラブルシューティング : ログ リスナ
更新 : 2007 年 11 月
My.Application.Log オブジェクトおよび My.Log オブジェクトを使用すると、アプリケーション内で発生したイベントに関する情報をログに記録できます。
それらのメッセージを受け取るログ リスナを確認する方法については、「チュートリアル : My.Application.Log による情報の書き込み先の確認」を参照してください。
Log オブジェクトでは、ログ フィルタ処理を使用して、ログに記録する情報の量を制限できます。フィルタの構成が適切でない場合には、ログに誤った情報が記録されることがあります。フィルタ処理の詳細については、「チュートリアル : My.Application.Log の出力をフィルタ処理する」を参照してください。
一方、ログの構成が適切でない場合には、現在のログの構成について、もっと詳しい情報が必要なことがあります。この情報は、ログの高度なプロパティである TraceSource プロパティで取得できます。
Log オブジェクトに対応するログ リスナをコードで確認するには
コード ファイルの先頭で System.Diagnostics 名前空間をインポートします。詳細については、「Imports ステートメント (.NET 名前空間および型)」を参照してください。
Imports System.Diagnostics
ログの各リスナに対応する情報で構成される文字列を返す関数を作成します。
Function GetListeners(ByVal listeners As TraceListenerCollection) As String Dim ret As String = "" For Each listener As TraceListener In listeners ret &= listener.Name Dim listenerType As Type = listener.GetType If listenerType Is GetType(DefaultTraceListener) Then Dim tmp As DefaultTraceListener = _ DirectCast(listener, DefaultTraceListener) ret &= ": Writes to the debug output." ElseIf listenerType Is GetType(Logging.FileLogTraceListener) Then Dim tmp As Logging.FileLogTraceListener = _ DirectCast(listener, Logging.FileLogTraceListener) ret &= ": Log filename: " & tmp.FullLogFileName ElseIf listenerType Is GetType(EventLogTraceListener) Then Dim tmp As EventLogTraceListener = _ DirectCast(listener, EventLogTraceListener) ret &= ": Event log name: " & tmp.EventLog.Log ElseIf listenerType Is GetType(XmlWriterTraceListener) Then Dim tmp As Diagnostics.XmlWriterTraceListener = _ DirectCast(listener, XmlWriterTraceListener) ret &= ": XML log" ElseIf listenerType Is GetType(ConsoleTraceListener) Then Dim tmp As ConsoleTraceListener = _ DirectCast(listener, ConsoleTraceListener) ret &= ": Console log" ElseIf listenerType Is GetType(DelimitedListTraceListener) Then Dim tmp As DelimitedListTraceListener = _ DirectCast(listener, DelimitedListTraceListener) ret &= ": Delimited log" Else ret &= ": Unhandeled log type: " & _ listenerType.ToString End If ret &= vbCrLf Next Return ret End Function
ログのトレース リスナのコレクションを GetListeners 関数に渡し、戻り値を表示します。
Dim ListenerCollection As TraceListenerCollection ListenerCollection = My.Application.Log.TraceSource.Listeners Dim ListenersText As String = GetListeners(ListenerCollection) MsgBox(ListenersText)
詳細については、「TraceSource プロパティ (My.Application.Log and My.Log)」を参照してください。
参照
処理手順
チュートリアル : My.Application.Log による情報の書き込み先の確認