Compartilhar via


Instruções passo a passo: alterando onde My.Application.Log grava informações (Visual Basic)

É possível usar os objetos My.Application.Log e My.Log para registrar em log as informações sobre eventos que ocorrem em seu aplicativo. Este 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 informações em vários ouvintes de log. Você precisa determinar a configuração atual dos ouvintes de log antes de alterar as configurações. Para obter mais informações, consulte Instruções passo a passo: Determinando onde My.Application.Log grava informações.

Talvez você queira examinar Como gravar informações de evento em um arquivo de texto ou Como gravar em um log de eventos do aplicativo.

Para adicionar ouvintes

  1. Clique com o botão direito do mouse em app.config no Gerenciador de Soluções e escolha Abrir.

    - ou -

    Se não houver nenhum arquivo app.config:

    1. No menu Projeto, escolha Adicionar Novo Item.

    2. Na caixa de diálogo Adicionar Novo Item, selecione Arquivo de Configuração de Aplicativo.

    3. Clique em Adicionar.

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

  3. Adicione esses elementos a essa 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. Remova a marca de comentário dos ouvintes de log que você deseja receber mensagens de Log.

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

  6. Adicione esses elementos a essa 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 elemento <add> do ouvinte na seção <sharedListeners>.

  2. O atributo type fornece o nome do tipo de ouvinte. Esse tipo deve herdar da classe TraceListener. Use o nome de tipo de nome forte para garantir que o tipo correto seja usado. Para obter mais informações, consulte a seção “Para fazer referência a um tipo de nome forte”.

    Alguns tipos que você pode usar são:

    Para obter 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. Depois de 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 daquele tipo de ouvinte.

Para fazer referência a um tipo de nome forte

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

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

  2. Este exemplo de código mostra como determinar o nome do tipo do nome forte para um tipo totalmente qualificado —"System.Diagnostics.FileLogTraceListener" nesse 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 usada para fazer referência de forma única a um tipo de nome forte, como no procedimento "Para adicionar ouvintes" acima.

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

Confira também