Instruções passo a passo: criando ouvintes de log personalizados (Visual Basic)
Estas instruções passo a passo demonstram como criar um ouvinte de log personalizado e configurá-lo para ouvir a saída do objeto My.Application.Log
.
Introdução
Ouvintes de log devem herdar da classe TraceListener.
Para criar o ouvinte
Em seu aplicativo, crie uma classe denominada
SimpleListener
que herda de TraceListener.Public Class SimpleListener Inherits System.Diagnostics.TraceListener <Security.Permissions.HostProtection(Synchronization:=True)> Public Overloads Overrides Sub Write(ByVal message As String) MsgBox("Write: " & message) End Sub <Security.Permissions.HostProtection(Synchronization:=True)> Public Overloads Overrides Sub WriteLine(ByVal message As String) MsgBox("WriteLine: " & message) End Sub End Class
Os métodos Write e WriteLine, exigidos pela classe base, chamam
MsgBox
para exibir sua entrada.O atributo HostProtectionAttribute é aplicado aos métodos Write e WriteLine para que seus atributos coincidam com os métodos da classe base. O atributo HostProtectionAttribute permite que o host que executa o código determine que o código expõe a sincronização de proteção de host.
Observação
O atributo HostProtectionAttribute é eficaz somente em aplicativos não gerenciados que hospedam o Common Language Runtime e implementam a proteção de host, como o SQL Server.
Para garantir que o My.Application.Log
use o ouvinte de log, você deve nomear fortemente o assembly que contém o ouvinte de log.
O procedimento seguinte fornece algumas etapas simples para criar um assembly de ouvinte de log de nome forte. Para obter mais informações, consulte Criando e usando assemblies de nomes fortes.
Para nomear fortemente o assembly de ouvinte de log
Selecione um projeto no Gerenciador de Soluções. No menu Projeto, escolha Propriedades.
Clique na guia Assinatura .
Marque a caixa Assinar o assembly.
Selecione <Novo> da lista suspensa Escolha um arquivo de chave de nome forte.
A caixa de diálogo Criar Chave de Nome Forte é aberta.
Forneça um nome para o arquivo de chaves na caixa Nome de arquivo de chaves.
Digite uma senha nas caixas Digite a senha e Confirmar senha caixas.
Clique em OK.
Recompile o aplicativo.
Adicionando o ouvinte
Agora que o assembly tem um nome forte, você precisa determinar o nome forte do ouvinte para que My.Application.Log
use seu ouvinte de log.
O formato de um tipo de nome forte é o seguinte.
<nome do tipo>, <nome do assembly>, <número de versão>, <cultura>>, <nome forte>
Para determinar o nome forte do ouvinte
O código a seguir mostra como determinar o tipo de nome forte de
SimpleListener
.Public Sub DisplaySimpleListenerStrongName() Dim t As Type = GetType(SimpleListener) MsgBox(t.FullName & ", " & t.Assembly.FullName) End Sub
O nome forte do tipo depende de seu projeto.
Com o nome forte, você pode adicionar o ouvinte à coleção de ouvintes de log My.Application.Log
.
Para adicionar o ouvinte a My.Application.Log
Clique com o botão direito do mouse em app.config no Gerenciador de Soluções e escolha Abrir.
-ou-
Se houver um arquivo app.config:
No menu Projeto, escolha Adicionar Novo Item.
Na caixa de diálogo Adicionar novo item, escolha Arquivo de configuração de aplicativo.
Clique em Adicionar.
Localize a seção
<listeners>
, na seção<source>
com oname
atributo "DefaultSource", localizado na seção<sources>
. A seção<sources>
está localizada na seção<system.diagnostics>
, na seção<configuration>
superior.Adicione esse elemento à seção
<listeners>
:<add name="SimpleLog" />
Localize a seção
<sharedListeners>
, na seção<system.diagnostics>
, na seção<configuration>
superior.Adicione esse elemento a essa seção
<sharedListeners>
:<add name="SimpleLog" type="SimpleLogStrongName" />
Altere o valor de
SimpleLogStrongName
para ser o nome forte do ouvinte.