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
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:
No menu Projeto, escolha Adicionar Novo Item.
Na caixa de diálogo Adicionar Novo Item, selecione Arquivo de Configuração do Aplicativo.
Clique em Adicionar.
Localize a
<listeners>
seção, sob a<source>
seção com oname
atributo "DefaultSource", na<sources>
seção . A<sources>
seção está na<system.diagnostics>
seção, na seção de nível<configuration>
superior.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" /> -->
Descomente os ouvintes de log que você deseja receber
Log
mensagens.Localize a
<sharedListeners>
seção, na<system.diagnostics>
seção , na seção de nível<configuration>
superior.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" />
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
Localize o elemento do
<add>
ouvinte na<sharedListeners>
seção.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:
Um Microsoft.VisualBasic.Logging.FileLogTraceListener ouvinte, que grava em um log de arquivo.
Um System.Diagnostics.EventLogTraceListener ouvinte, que grava informações no log de eventos do computador especificado pelo
initializeData
parâmetro.Os System.Diagnostics.DelimitedListTraceListener e System.Diagnostics.XmlWriterTraceListener ouvintes, que gravam no arquivo especificado no
initializeData
parâmetro.Um System.Diagnostics.ConsoleTraceListener ouvinte, que grava no console de linha de comando.
Para obter informações sobre onde outros tipos de ouvintes de log gravam informações, consulte a documentação desse tipo.
Quando o aplicativo cria o objeto log-listener, ele passa o
initializeData
atributo como o parâmetro do construtor. O significado doinitializeData
atributo depende do ouvinte de traço.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
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>
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