チュートリアル: My.Application.Log による情報の書き込み先の変更 (Visual Basic)Walkthrough: Changing Where My.Application.Log Writes Information (Visual Basic)

My.Application.Log オブジェクトおよび My.Log オブジェクトを使用すると、アプリケーション内で発生したイベントに関する情報をログに記録できます。You can use the My.Application.Log and My.Log objects to log information about events that occur in your application. このチュートリアルでは、既定の設定をオーバーライドして、 Log オブジェクトによる書き込み先を他のログ リスナーに変更する方法を示します。This walkthrough shows how to override the default settings and cause the Log object to write to other log listeners.

必須コンポーネントPrerequisites

Log オブジェクトは、複数のログ リスナーに情報を書き込むことができます。The Log object can write information to several log listeners. ログ リスナーの構成を変更する前に、現在の構成を確認する必要があります。You need to determine the current configuration of the log listeners before changing the configurations. 詳細については、「チュートリアル:My.Application.Log による情報の書き込み先の確認」を参照してください。For more information, see Walkthrough: Determining Where My.Application.Log Writes Information.

必要に応じて、「方法:イベント情報をテキスト ファイルに書き込む」または「方法:アプリケーション イベント ログに書き込む」を参照してください。You may want to review How to: Write Event Information to a Text File or How to: Write to an Application Event Log.

リスナーを追加するにはTo add listeners

  1. ソリューション エクスプローラー で app.config を右クリックし、 [開く] を選択します。Right-click app.config in Solution Explorer and choose Open.

    - または- or -

    app.config ファイルがない場合は、次の操作を行います。If there is no app.config file:

    1. [プロジェクト] メニューの [新しい項目の追加] をクリックします。On the Project menu, choose Add New Item.

    2. [新しい項目の追加] ダイアログ ボックスで、 [アプリケーション構成ファイル] をクリックします。From the Add New Item dialog box, select Application Configuration File.

    3. [追加] をクリックします。Click Add.

  2. <listeners> セクション内にある、 <source> 属性が "DefaultSource" の name セクションで、 <sources> セクションを見つけます。Locate the <listeners> section, under the <source> section with the name attribute "DefaultSource", in the <sources> section. <sources> セクションは、最上位の <system.diagnostics> セクション内の <configuration> セクションにあります。The <sources> section is in the <system.diagnostics> section, in the top-level <configuration> section.

  3. その <listeners> セクションに次の要素を追加します。Add these elements to that <listeners> section.

    <!-- 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" /> -->  
    
  4. Log のメッセージを受け取らせるログ リスナーをコメントから外します。Uncomment the log listeners that you want to receive Log messages.

  5. 最上位の <sharedListeners> セクション内の <system.diagnostics> セクションで、 <configuration> セクションを見つけます。Locate the <sharedListeners> section, in the <system.diagnostics> section, in the top-level <configuration> section.

  6. その <sharedListeners> セクションに次の要素を追加します。Add these elements to that <sharedListeners> section.

    <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" />  
    
  7. app.config ファイルの内容は次の XML のようになります。The content of the app.config file should be similar to the following 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>  
    

リスナーを再構成するにはTo reconfigure a listener

  1. <add> セクションで、リスナーの <sharedListeners> 要素を見つけます。Locate the listener's <add> element from the <sharedListeners> section.

  2. type 属性はリスナーの型の名前を表します。The type attribute gives the name of the listener type. この型は TraceListener クラスを継承する必要があります。This type must inherit from the TraceListener class. 正しい型が確実に使用されるよう、型名には厳密な名前を使用します。Use the strongly named type name to ensure that the right type is used. 詳細については、後述の「厳密な名前を指定された型を参照するには」を参照してください。For more information, see the "To reference a strongly named type" section below.

    使用できる型のいくつかを以下に示します。Some types that you can use are:

    他の型のログ リスナーが情報を書き込む先については、その型のドキュメントを参照してください。For information about where other types of log listeners write information, consult that type's documentation.

  3. アプリケーションは、ログ リスナー オブジェクトを作成するときに、コンストラクターのパラメーターとして initializeData 属性を渡します。When the application creates the log-listener object, it passes the initializeData attribute as the constructor parameter. initializeData 属性の意味はトレース リスナーによって異なります。The meaning of the initializeData attribute depends on the trace listener.

  4. ログ リスナーの作成後にアプリケーションはリスナーのプロパティを設定します。After creating the log listener, the application sets the listener's properties. これらのプロパティは、 <add> 要素の他の属性で定義されています。These properties are defined by the other attributes in the <add> element. 特定のリスナーのプロパティの詳細については、そのリスナーの型のドキュメントを参照してください。For more information on the properties for a particular listener, see the documentation for that listener's type.

厳密な名前を指定された型を参照するにはTo reference a strongly named type

  1. ログ リスナーとして正しい型を確実に使用するために、完全修飾型名と厳密な名前のアセンブリ名を使用する必要があります。To ensure that the right type is used for your log listener, make sure to use the fully qualified type name and the strongly named assembly name. 厳密な名前を指定された型の構文は次のとおりです。The syntax of a strongly named type is as follows:

    <型名>, <アセンブリ名>, <バージョン番号>, <カルチャ>, <厳密な名前><type name>, <assembly name>, <version number>, <culture>, <strong name>

  2. 次のコード例は、完全修飾された型の厳密な名前を確認する方法を示します。この例では "System.Diagnostics.FileLogTraceListener" です。This code example shows how to determine the strongly named type name for a fully qualified type—"System.Diagnostics.FileLogTraceListener" in this case.

    Public Sub DisplayStrongName()
        Dim t As Type = GetType(Logging.FileLogTraceListener)
        MsgBox(t.FullName & ", " & t.Assembly.FullName)
    End Sub
    

    次に示すのが出力です。これを使用して、前述の「リスナーを追加するには」の手順で示した方法で、厳密な名前を指定された型を一意に参照できます。This is the output, and it can be used to uniquely reference a strongly named type, as in the "To add listeners" procedure above.

    Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

関連項目See also