Partilhar via


Demonstra Passo a passo: Alterando onde My.Application.Log grava informações (Visual Basic)

Você pode usar os objetos My.Application.Log e My.Log para criar um log de informações sobre eventos que ocorrem em seu aplicativo. Esta explicação passo a passo mostra como substituir as configurações padrão e fazer com que o objeto Log grave em outros ouvintes de log.

Pré-requisitos

O objeto Log pode gravar as informações em vários ouvintes de log. Você precisará determinar a configuração atual dos ouvintes de log antes de alterar as configurações. Para obter mais informações, consulte Demonstra Passo a passo: Determinar onde My.Application.Log grava informações (Visual Basic).

Você pode querer examinar Como: Gravar informações de evento para um arquivo de texto (Visual Basic) ou Como: Gravar um Log de eventos do aplicativo (Visual Basic).

Para adicionar ouvintes

  1. Clique com o botão direito do mouse em app.config no Solution Explorer e escolha Open.

    - ou -

    Se não houver nenhum arquivo app.config:

    1. No menu Project, escolha Add New Item.

    2. Na caixa de diálogo Add New Item, selecione Application Configuration File.

    3. Clique em Adicionar.

  2. Localize a seção <listeners>,na seção <source> com o atributo name "DefaultSource", na seção <sources>. A seção <sources> está na seção <system.diagnostics>, na seção de nível superior <configuration>.

  3. Adicione esses elementos a aquela seção <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. Descomente os ouvintes de log que você desejar receber mensagens de Log.

  5. Localize a seção <sharedListeners>, na seção <system.diagnostics>, na seção de nível superior <configuration>.

  6. Adicione esses elementos a aquela seção <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. O conteúdo do arquivo app.config deve ser semelhante ao XML a seguir:

    <?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>
    

Para reconfigurar um ouvinte

  1. Localize o ouvinte do elemento <add> da seção <sharedListeners>.

  2. O atributo type fornece o nome do tipo de escuta. Este tipo deve herdar da classe TraceListener. Use o nome de tipo altamente nomeado para garantir que o tipo correto é usado. Para obter mais informações, consulte a seção abaixo "Referenciar um tipo de nome forte".

    Alguns tipos que você pode usar são:

    Para informações sobre onde outros tipos de ouvintes de log gravam informações, consulte a documentação daquele tipo.

  3. Quando o aplicativo cria o objeto de ouvinte de log, ele passa o atributo initializeData como o parâmetro de construtor. O significado do atributo initializeData depende o ouvinte de rastreamento.

  4. Após criar o ouvinte de log, o aplicativo define as propriedades do ouvinte. Essas propriedades são definidas pelos outros atributos no elemento <add>. Para obter mais informações sobre as propriedades de um ouvinte específico, consulte a documentação para aquele tipo de ouvinte.

Para Fazer referência a um tipo de nome forte

  1. Para garantir que o tipo correto é usado para seu ouvinte de log, certifique-se de usar o nome de tipo totalmente qualificado e o nome de assembly de nome forte. A sintaxe de um tipo de nome forte é a seguinte:

    <nome do tipo>, <nome de assembly>, <o número de versão>, <cultura>, <nome forte>

  2. Este exemplo de código mostra como determinar o nome do tipo de nome forte para um tipo totalmente qualificado — &quot;System.Diagnostics.FileLogTraceListener&quot; neste caso.

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

    Esta é a saída, e ela pode ser usado para fazer referência única a um tipo de nome forte, como no procedimento “Too add listeners” (para adicionar ouvintes) acima.

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

Consulte também

Tarefas

Como: Gravar informações de evento para um arquivo de texto (Visual Basic)

Como: Gravar um Log de eventos do aplicativo (Visual Basic)

Referência

Microsoft.VisualBasic.Logging.Log

TraceListener

Microsoft.VisualBasic.Logging.FileLogTraceListener

System.Diagnostics.EventLogTraceListener