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 My.Application.Log saída do objeto.

Introdução

Os ouvintes de log devem herdar da TraceListener classe.

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 Write métodos and WriteLine , exigidos pela classe base, chamam MsgBox para exibir sua entrada.

    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.

    Nota

    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 nomear fortemente o assembly log-listener

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

  2. Clique na guia Assinatura .

  3. Selecione a caixa Assinar a montagem .

  4. Selecione <Novo> na 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. Introduza uma palavra-passe nas caixas Introduzir palavra-passe e Confirmar palavra-passe .

  7. Clique em OK.

  8. Reconstrua 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 ele use 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.

    -or-

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

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

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

  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.

Consulte também