Compartilhar via


Instruções 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 My.Application.Log objeto.

Introdução

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 sua entrada de dados.

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

    Observação

    O HostProtectionAttribute atributo só é eficaz em aplicativos não gerenciados que hospedam o common language runtime e que 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

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

  2. Clique na guia Assinatura .

  3. Marque a caixa Assinar o assembly.

  4. Selecione <Novo> da lista suspensa Escolha um arquivo 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. Insira uma senha nas caixas Inserir senha e Confirmar senha .

  7. Clique em OK.

  8. 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

  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 name atributo "DefaultSource", localizado na seção <sources>. A seção <sources> está localizada na seção <system.diagnostics>, na seção de nível superior <configuration>.

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

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

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

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

    Altere o valor de SimpleLogStrongName para que seja o nome forte do ouvinte.

Consulte também