Share via


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

Você pode usar os My.Application.Log objetos e My.Log para registrar 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 Log objeto grave em outros ouvintes de log.

Pré-requisitos

O Log objeto pode gravar informações para 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 Passo a passo: Determinando onde My.Application.Log grava informações.

Você pode querer rever 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 do Aplicativo.

    3. Clique em Adicionar.

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

  3. Adicione esses elementos a essa <listeners> seção.

    <!-- 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ê deseja receber Log mensagens.

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

  6. Adicione esses elementos a essa <sharedListeners> seção.

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

Para reconfigurar um ouvinte

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

  2. O type atributo dá o nome do tipo de ouvinte. Esse tipo deve herdar da TraceListener classe. Use o nome do tipo com 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 com nome forte" abaixo.

    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 desse tipo.

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

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

Para fazer referência a um tipo com nome forte

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

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

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

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

Consulte também