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

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

Guia de Introdução

Ouvintes do 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 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çãoObservação

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

Para garantir que My.Application.Log use seu ouvinte de log, você deve nomear com alta segurança o assembly que contém o ouvinte de log.

O próximo procedimento fornece algumas etapas simples para criar um assembly com ouvinte de log nomeado com alta segurança.Para obter mais informações, consulte Criando e usando Assemblies de nomes fortes.

Para nomear com alta segurança o assembly com ouvinte de log

  1. Tenha um projeto selecionado no Solution Explorer.No menu Project, escolha Properties.Para obter mais informações, consulte Introdução ao Project Designer.

  2. Clique na guia Signing.

  3. Marque a caixa Sign the assembly.

  4. Selecione <New> a partir de Choose a strong name key file

    A caixa de diálogo Create Strong Name Key é aberta.

  5. Forneça um nome para o arquivo chave na caixa Key file name.

  6. Insira uma senha nas caixas Enter password e Confirm password.

  7. Clique em OK.

  8. Recrie o aplicativo.

Adicionando o ouvinte

Agora que o assembly tem um nome de alta segurança, você precisará determinar o nome de alta segurança do ouvinte para que My.Application.Log use seu ouvinte de log.

O formato de um tipo nomeado com alta segurança é o seguinte.

<type name>, <assembly name>, <version number>, <culture>, <strong name>

Para determinar o nome do ouvinte de alta segurança

  • O código a seguir mostra como determinar o nome do tipo nomeado com alta segurança para SimpleListener.

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

    O nome do tipo de alta segurança depende do seu projeto.

Com o nome de alta segurança, você pode adicionar o ouvinte para a coleção My.Application.Log de ouvinte de log.

Para adicionar o ouvinte a My.Application.Log

  1. Clique com o botão direito do mouse no App.config em Solution Explorer e escolha Open.

    - ou -

    Se não houver um arquivo App.config:

    1. No menu Project, escolha Add New Item.

    2. No caixa de diálogo Add New Item escolha Application Configuration File.

    3. Clique em Adicionar.

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

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

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

  5. Adicione esse elemento à seção <sharedListeners>.

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

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

Consulte também

Tarefas

Como: Log Exceptions in Visual Basic

Como: gravar mensagens de Log (Visual Basic)

Passo a passo: Alterando onde My.Application.Log grava informações (Visual Basic)

Referência

Microsoft.VisualBasic.Logging.Log

Conceitos

Trabalhando com Logs de aplicativo em Visual Basic