Partilhar via


Passo a passo: Criando ouvintes de log personalizados (Visual Basic)

Este passo a passo demonstra como criar um ouvinte de log personalizado e configurá-lo para ouvir a saída do objeto My.Application.Log.

Primeiros passos

Os ouvintes de log devem herdar da classe TraceListener.

Para criar o ouvinte

  • Em seu aplicativo, crie uma classe chamada 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 suas entradas.

    O HostProtectionAttribute atributo é aplicado aos Write métodos e WriteLine para que seus atributos correspondam aos métodos de classe base. O HostProtectionAttribute atributo permite que o host que executa o código determine que o código expõe a sincronização de proteção do host.

    Observação

    O HostProtectionAttribute atributo é efetivo somente em aplicativos não gerenciados que hospedam o Common Language Runtime e que implementam proteção de host, como o SQL Server.

Para garantir que My.Application.Log usa seu ouvinte de log, você deve nomear fortemente o assembly que contém seu ouvinte de log.

O próximo procedimento fornece algumas etapas simples para criar um assembly de ouvinte de log fortemente nomeado. Para obter mais informações, consulte Criando e usando assemblies de nome forte.

Para atribuir um nome forte à assembly log-listener

  1. Tenha um projeto selecionado no Gerenciador de Soluções. No menu Projeto , escolha Propriedades.

  2. Clique na aba de assinatura .

  3. Selecione a caixa Assinatura da montagem.

  4. Selecione <Novo> na lista suspensa Escolher um ficheiro de chave de nome forte.

    A caixa de diálogo Criar chave de nome forte é aberta.

  5. Forneça um nome para o arquivo de chave na caixa Nome do arquivo de chave .

  6. Introduza uma palavra-passe nas caixas Introduzir palavra-passe e Confirmar palavra-passe .

  7. Clique em OK.

  8. Reconstrua a aplicação.

Adicionando o ouvinte

Agora que o assembly tem um nome forte, é necessário determinar o nome forte do ouvinte para que My.Application.Log use o seu ouvinte de log.

O formato de um tipo fortemente nomeado é o seguinte.

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

Para determinar o nome forte do ouvinte

  • O código a seguir mostra como determinar o nome do tipo fortemente nomeado para SimpleListener.

    Public Sub DisplaySimpleListenerStrongName()
        Dim t As Type = GetType(SimpleListener)
        MsgBox(t.FullName & ", " & t.Assembly.FullName)
    End Sub
    

    O nome forte do tipo depende do seu projeto.

Com o nome forte, você pode adicionar o ouvinte à My.Application.Log coleção log-listener.

Para adicionar o ouvinte a My.Application.Log

  1. 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:

    1. No menu Projeto , escolha Adicionar Novo Item.

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

    3. Clique em Adicionar.

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

  3. Adicione este elemento à <listeners> seção:

    <add name="SimpleLog" />
    
  4. Localize a seção de <sharedListeners>, na seção de <system.diagnostics>, na seção de nível superior <configuration>.

  5. Adicione este elemento a essa <sharedListeners> seção:

    <add name="SimpleLog" type="SimpleLogStrongName" />
    

    Altere o valor de SimpleLogStrongName para ser o nome forte do ouvinte.

Ver também