次の方法で共有


チュートリアル: My.Application.Log が情報を書き込む場所を変更する (Visual Basic)

My.Application.LogオブジェクトとMy.Log オブジェクトを使用して、アプリケーションで発生したイベントに関する情報をログに記録できます。 このチュートリアルでは、既定の設定をオーバーライドし、 Log オブジェクトを他のログ リスナーに書き込む方法について説明します。

[前提条件]

Log オブジェクトは、複数のログ リスナーに情報を書き込むことができます。 構成を変更する前に、ログ リスナーの現在の構成を確認する必要があります。 詳細については、「 チュートリアル: My.Application.Log が情報を書き込む場所の決定」を参照してください。

方法: イベント情報をテキスト ファイルに書き込む 」または 「方法: アプリケーション イベント ログに書き込む」を参照してください。

リスナーを追加するには

  1. ソリューション エクスプローラーで app.config を右クリックし、[開く] を選択します。

    -又は-

    app.config ファイルがない場合:

    1. [ プロジェクト ] メニューの [ 新しい項目の追加] を選択します。

    2. [ 新しい項目の追加 ] ダイアログ ボックスで、[ アプリケーション構成ファイル] を選択します。

    3. 追加をクリックします。

  2. <sources> セクションで、name属性 "DefaultSource" を持つ <source> セクションの下にある <listeners> セクションを見つけます。 <sources> セクションは、<system.diagnostics> セクションの最上位の <configuration> セクションにあります。

  3. これらの要素をその <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" /> -->
    
  4. Logメッセージを受信するログ リスナーのコメントを解除します。

  5. [<system.diagnostics>] セクションの最上位レベルの [<configuration>] セクションで、<sharedListeners> セクションを見つけます。

  6. これらの要素をその <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" />
    
  7. 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>
    

リスナーを再構成するには

  1. <sharedListeners> セクションからリスナーの<add>要素を見つけます。

  2. type属性は、リスナーの種類の名前を指定します。 この型は、 TraceListener クラスから継承する必要があります。 厳密な名前の型名を使用して、適切な型が使用されていることを確認します。 詳細については、以下の「厳密な名前付き型を参照するには」セクションを参照してください。

    使用できる種類は次のとおりです。

    他の種類のログ リスナーが情報を書き込む場所については、その種類のドキュメントを参照してください。

  3. アプリケーションは、ログ リスナー オブジェクトを作成するときに、 initializeData 属性をコンストラクター パラメーターとして渡します。 initializeData属性の意味は、トレース リスナーによって異なります。

  4. ログ リスナーを作成した後、アプリケーションはリスナーのプロパティを設定します。 これらのプロパティは、 <add> 要素内の他の属性によって定義されます。 特定のリスナーのプロパティの詳細については、そのリスナーの型のドキュメントを参照してください。

厳密な名前の型を参照するには

  1. ログ リスナーに適切な型が使用されるようにするには、完全修飾型名と厳密な名前のアセンブリ名を使用してください。 厳密に名前が付けられた型の構文は次のとおりです。

    < type name>, <assembly name>, <version number>, <culture>, <strong name>

  2. このコード例では、完全修飾型 "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

こちらも参照ください