Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este passo a passo demonstra como alterar a filtragem de log padrão para o My.Application.Log objeto, controlar quais informações são passadas do Log objeto para os ouvintes e quais informações são gravadas pelos ouvintes. Você pode alterar o comportamento de registro em log mesmo após a criação do aplicativo, pois as informações de configuração são armazenadas no arquivo de configuração do aplicativo.
Introdução
Cada mensagem que My.Application.Log grava tem um nível de severidade associado, que os mecanismos de filtragem usam para controlar a saída do log. Este aplicativo de exemplo usa métodos para gravar várias My.Application.Log mensagens de log com níveis de severidade diferentes.
Para criar o aplicativo de exemplo
Abra um novo projeto do Aplicativo Windows do Visual Basic.
Adicione um botão chamado Button1 ao Form1.
Click No manipulador de eventos para Button1, adicione o seguinte código:
' Activity tracing information My.Application.Log.WriteEntry("Entering Button1_Click", TraceEventType.Start) ' Tracing information My.Application.Log.WriteEntry("In Button1_Click", TraceEventType.Information) ' Create an exception to log. Dim ex As New ApplicationException ' Exception information My.Application.Log.WriteException(ex) ' Activity tracing information My.Application.Log.WriteEntry("Leaving Button1_Click", TraceEventType.Stop)Execute o aplicativo no depurador.
Pressione Button1.
O aplicativo grava as informações a seguir no arquivo de log e na saída da depuração do aplicativo.
DefaultSource Information: 0 : In Button1_ClickDefaultSource Error: 2 : Error in the application.Feche o aplicativo.
Para obter informações sobre como exibir a janela de debug do aplicativo, consulte Output Window. Para obter informações sobre o local do arquivo de log do aplicativo, consulte Passo a passo: Determinando onde My.Application.Log grava informações.
Observação
Por padrão, o aplicativo libera a saída do arquivo de log quando é fechado.
No exemplo acima, a segunda chamada para o WriteEntry método e a chamada para o WriteException método produzem saída de log, enquanto a primeira e a última chamadas para o
WriteEntrymétodo não. Isso ocorre porque os níveis de gravidade deWriteEntryeWriteExceptionsão "Informação" e "Erro", ambos permitidos pela filtragem de log padrão do objetoMy.Application.Log. No entanto, os eventos com os níveis de gravidade "Start" e "Stop" são impedidos de produzir a saída de log.
Filtragem de ouvintes de My.Application.Log
O objeto My.Application.Log usa um SourceSwitch chamado DefaultSwitch para controlar quais mensagens ele passa dos métodos WriteEntry e WriteException para os ouvintes de log. Você pode configurar DefaultSwitch no arquivo de configuração do aplicativo, definindo seu valor como um dos valores da enumeração SourceLevels. Por padrão, seu valor é "Informações".
Esta tabela mostra o nível de severidade necessário para que o Log escreva uma mensagem para os ouvintes, considerando uma configuração específica DefaultSwitch .
| Valor DefaultSwitch | Gravidade da mensagem necessária para a saída |
|---|---|
Critical |
Critical |
Error |
Critical ou Error |
Warning |
Critical, Error ou Warning |
Information |
Critical, Error, Warningou Information |
Verbose |
Critical, Error, Warning, Informationou Verbose |
ActivityTracing |
Start, Stop, Suspend, Resumeou Transfer |
All |
Todas as mensagens são permitidas. |
Off |
Todas as mensagens são bloqueadas. |
Observação
Os métodos WriteEntry e WriteException têm uma sobrecarga que não especifica um nível de gravidade. O nível de severidade implícita da WriteEntry sobrecarga é "Informações" e o nível de severidade implícita da WriteException sobrecarga é "Erro".
Esta tabela explica a saída de log mostrada no exemplo anterior: com a configuração padrão DefaultSwitch de "Informações", apenas a segunda chamada para o método WriteEntry e a chamada para o método WriteException produzem saída de log.
Para registrar somente eventos de rastreamento de atividades
Clique com o botão direito do mouse app.config no Gerenciador de Soluções e selecione 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 , escolha Arquivo de Configuração do Aplicativo.
Clique em Adicionar.
Localize a seção
<switches>, que está na seção<system.diagnostics>, que está na seção<configuration>superior.Localize o elemento que adiciona
DefaultSwitchà coleção de comutadores. Ele deve ser semelhante a este elemento:<add name="DefaultSwitch" value="Information" />Altere o valor do
valueatributo para "ActivityTracing".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"/> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="ActivityTracing" /> </switches> <sharedListeners> <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/> </sharedListeners> </system.diagnostics> </configuration>Execute o aplicativo no depurador.
Pressione Button1.
O aplicativo grava as informações a seguir no arquivo de log e na saída da depuração do aplicativo:
DefaultSource Start: 4 : Entering Button1_ClickDefaultSource Stop: 5 : Leaving Button1_ClickFeche o aplicativo.
Altere o valor do atributo
valuede volta para "Informação".Observação
A configuração da opção
DefaultSwitchcontrola apenasMy.Application.Log. Ele não altera a forma como o .NET System.Diagnostics.Trace e System.Diagnostics.Debug as classes se comportam.
Filtragem individual para ouvintes do My.Application.Log
O exemplo anterior mostra como alterar a filtragem para todas as My.Application.Log saídas. Este exemplo demonstra como filtrar um ouvinte de log individual. Por padrão, um aplicativo tem dois ouvintes que gravam na saída de depuração do aplicativo e no arquivo de log.
O arquivo de configuração controla o comportamento dos ouvintes de log, permitindo que cada um deles tenha um filtro, que é semelhante a uma opção para My.Application.Log. Um ouvinte de log produzirá uma mensagem somente se a gravidade da mensagem for permitida pelo DefaultSwitch do log e pelo filtro do ouvinte de log.
Este exemplo demonstra como configurar a filtragem para um novo listener de debug e adicioná-lo ao objeto Log. O ouvinte de depuração padrão deve ser removido do Log objeto, portanto, fica claro que as mensagens de depuração vêm do novo ouvinte de depuração.
Para registrar somente eventos de rastreamento de atividade
Clique com o botão direito do mouse 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 , escolha Arquivo de Configuração do Aplicativo.
Clique em Adicionar.
Clique com o botão direito do mouse app.config no Gerenciador de Soluções. Escolha Abrir.
Localize a seção
<listeners>, na seção<source>com o atributo dename"DefaultSource", que está na seção<sources>. A seção<sources>está na seção<system.diagnostics>, na seção<configuration>superior.Adicione este elemento à
<listeners>seção:<!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/>Localize a seção
<sharedListeners>, na seção<system.diagnostics>, na seção superior de nível<configuration>.Adicione este elemento a essa
<sharedListeners>seção:<add name="NewDefault" type="System.Diagnostics.DefaultTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" /> </add>O filtro EventTypeFilter escolhe um dos valores de enumeração SourceLevels como seu atributo
initializeData.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"/> <!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/> </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, processorArchitecture=MSIL" initializeData="FileLogWriter"/> <add name="NewDefault" type="System.Diagnostics.DefaultTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" /> </add> </sharedListeners> </system.diagnostics> </configuration>Execute o aplicativo no depurador.
Pressione Button1.
O aplicativo grava as seguintes informações no arquivo de log do aplicativo:
Default Information: 0 : In Button1_ClickDefault Error: 2 : Error in the application.O aplicativo grava menos informações na saída da depuração do aplicativo devido à filtragem mais restritiva.
Default Error 2 ErrorFeche o aplicativo.
Para obter mais informações sobre como alterar as configurações de log após a implantação, consulte Trabalhando com logs de aplicativos.
Consulte também
- Passo a passo: determinando onde My.Application.Log grava informações
- Passo a passo: alterando o local em que My.Application.Log grava informações
- Passo a passo: criar ouvintes de log personalizados
- Como gravar mensagens de log
- Opções de rastreamento
- Registrando informações em log a partir do aplicativo