My.Application.Log
オブジェクトとMy.Log
オブジェクトを使用して、アプリケーションで発生したイベントに関する情報をログに記録できます。 このチュートリアルでは、既定の設定をオーバーライドし、 Log
オブジェクトを他のログ リスナーに書き込む方法について説明します。
[前提条件]
Log
オブジェクトは、複数のログ リスナーに情報を書き込むことができます。 構成を変更する前に、ログ リスナーの現在の構成を確認する必要があります。 詳細については、「 チュートリアル: My.Application.Log が情報を書き込む場所の決定」を参照してください。
「 方法: イベント情報をテキスト ファイルに書き込む 」または 「方法: アプリケーション イベント ログに書き込む」を参照してください。
リスナーを追加するには
ソリューション エクスプローラーで app.config を右クリックし、[開く] を選択します。
-又は-
app.config ファイルがない場合:
[ プロジェクト ] メニューの [ 新しい項目の追加] を選択します。
[ 新しい項目の追加 ] ダイアログ ボックスで、[ アプリケーション構成ファイル] を選択します。
追加をクリックします。
<sources>
セクションで、name
属性 "DefaultSource" を持つ<source>
セクションの下にある<listeners>
セクションを見つけます。<sources>
セクションは、<system.diagnostics>
セクションの最上位の<configuration>
セクションにあります。これらの要素をその
<listeners>
セクションに追加します。<!-- Uncomment to connect the application file log. --> <!-- <add name="FileLog" /> --> <!-- Uncomment to connect the event log. --> <!-- <add name="EventLog" /> --> <!-- Uncomment to connect the event log. --> <!-- <add name="Delimited" /> --> <!-- Uncomment to connect the XML log. --> <!-- <add name="XmlWriter" /> --> <!-- Uncomment to connect the console log. --> <!-- <add name="Console" /> -->
Log
メッセージを受信するログ リスナーのコメントを解除します。[
<system.diagnostics>
] セクションの最上位レベルの [<configuration>
] セクションで、<sharedListeners>
セクションを見つけます。これらの要素をその
<sharedListeners>
セクションに追加します。<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" initializeData="FileLogWriter" /> <add name="EventLog" type="System.Diagnostics.EventLogTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="sample application"/> <add name="Delimited" type="System.Diagnostics.DelimitedListTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\temp\sampleDelimitedFile.txt" traceOutputOptions="DateTime" /> <add name="XmlWriter" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\temp\sampleLogFile.xml" /> <add name="Console" type="System.Diagnostics.ConsoleTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="true" />
app.config ファイルの内容は、次の XML のようになります。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics> <sources> <!-- This section configures My.Application.Log --> <source name="DefaultSource" switchName="DefaultSwitch"> <listeners> <add name="FileLog"/> <!-- Uncomment to connect the application file log. --> <!-- <add name="FileLog" /> --> <!-- Uncomment to connect the event log. --> <!-- <add name="EventLog" /> --> <!-- Uncomment to connect the event log. --> <!-- <add name="Delimited" /> --> <!-- Uncomment to connect the XML log. --> <!-- <add name="XmlWriter" /> --> <!-- Uncomment to connect the console log. --> <!-- <add name="Console" /> --> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="Information" /> </switches> <sharedListeners> <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" initializeData="FileLogWriter" /> <add name="EventLog" type="System.Diagnostics.EventLogTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="sample application"/> <add name="Delimited" type="System.Diagnostics.DelimitedListTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\temp\sampleDelimitedFile.txt" traceOutputOptions="DateTime" /> <add name="XmlWriter" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\temp\sampleLogFile.xml" /> <add name="Console" type="System.Diagnostics.ConsoleTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="true" /> </sharedListeners> </system.diagnostics> </configuration>
リスナーを再構成するには
<sharedListeners>
セクションからリスナーの<add>
要素を見つけます。type
属性は、リスナーの種類の名前を指定します。 この型は、 TraceListener クラスから継承する必要があります。 厳密な名前の型名を使用して、適切な型が使用されていることを確認します。 詳細については、以下の「厳密な名前付き型を参照するには」セクションを参照してください。使用できる種類は次のとおりです。
ファイル ログに書き込む Microsoft.VisualBasic.Logging.FileLogTraceListener リスナー。
System.Diagnostics.EventLogTraceListener リスナー。
initializeData
パラメーターで指定されたコンピューター イベント ログに情報を書き込みます。initializeData
パラメーターで指定されたファイルに書き込む、System.Diagnostics.DelimitedListTraceListenerリスナーとSystem.Diagnostics.XmlWriterTraceListener リスナー。コマンド ライン コンソールに書き込む System.Diagnostics.ConsoleTraceListener リスナー。
他の種類のログ リスナーが情報を書き込む場所については、その種類のドキュメントを参照してください。
アプリケーションは、ログ リスナー オブジェクトを作成するときに、
initializeData
属性をコンストラクター パラメーターとして渡します。initializeData
属性の意味は、トレース リスナーによって異なります。ログ リスナーを作成した後、アプリケーションはリスナーのプロパティを設定します。 これらのプロパティは、
<add>
要素内の他の属性によって定義されます。 特定のリスナーのプロパティの詳細については、そのリスナーの型のドキュメントを参照してください。
厳密な名前の型を参照するには
ログ リスナーに適切な型が使用されるようにするには、完全修飾型名と厳密な名前のアセンブリ名を使用してください。 厳密に名前が付けられた型の構文は次のとおりです。
< type name>, <assembly name>, <version number>, <culture>, <strong name>
このコード例では、完全修飾型 "System.Diagnostics.FileLogTraceListener" の厳密な名前の型名を確認する方法を示します。
Public Sub DisplayStrongName() Dim t As Type = GetType(Logging.FileLogTraceListener) MsgBox(t.FullName & ", " & t.Assembly.FullName) End Sub
これは出力であり、上記の「リスナーを追加するには」の手順のように、厳密に名前が付けられた型を一意に参照するために使用できます。
Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
こちらも参照ください
.NET