Demonstra Passo a passo: Criando ouvintes de Log personalizado (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çã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 Nome Forte.
Para nomear com alta segurança o assembly com ouvinte de log
Tenha um projeto selecionado no Solution Explorer. No menu Project, escolha Properties. Para obter mais informações, consulte Introdução ao Project Designer.
Clique na guia Signing.
Marque a caixa Sign the assembly.
Selecione <New> a partir de Choose a strong name key file
A caixa de diálogo Create Strong Name Key é aberta.
Forneça um nome para o arquivo chave na caixa Key file name.
Insira uma senha nas caixas Enter password e Confirm password.
Clique em OK.
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
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:
No menu Project, escolha Add New Item.
No caixa de diálogo Add New Item escolha Application Configuration File.
Clique em Adicionar.
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>.
Adicione esse elemento à seção <listeners>.
<add name="SimpleLog" />
Localize a seção <sharedListeners>, na seção <system.diagnostics>, na seção de nível superior <configuration>.
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)
Demonstra Passo a passo: Alterando onde My.Application.Log grava informações (Visual Basic)
Referência
Microsoft.VisualBasic.Logging.Log