Procedura dettagliata: creazione di listener di log personalizzati (Visual Basic)

Questa procedura spiega come creare un listener di log personalizzato e configurarlo in modo che resti in ascolto dell'output dell'oggetto My.Application.Log.

Introduzione

I listener di log devono ereditare dalla TraceListener classe.

Per creare il listener

  • Nell'applicazione creare una classe denominata SimpleListener che eredita da 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
    

    I metodi Write e WriteLine, richiesti dalla classe di base, chiamano MsgBox per visualizzare l'input.

    L'attributo HostProtectionAttribute viene applicato ai metodi Write e WriteLine in modo che i relativi attributi corrispondano ai metodi della classe di base. L'attributo HostProtectionAttribute consente all'host che esegue il codice di determinare se il codice espone la sincronizzazione con protezione host.

    Nota

    L'attributo HostProtectionAttribute ha effetto solo su applicazioni non gestite che ospitano Common Language Runtime e implementano la protezione host, ad esempio SQL Server.

Per assicurarsi che My.Application.Log usi il listener di log, assegnare un nome sicuro all'assembly che contiene il listener di log.

La procedura seguente prevede alcuni semplici passaggi per la creazione di un assembly di listener di log con nome sicuro. Per altre informazioni, vedere Creazione e utilizzo degli assembly con nome sicuro.

Per assegnare un nome sicuro all'assembly di listener di log

  1. Selezionare un progetto in Esplora soluzioni. Scegliere Proprietà dal menu Progetto.

  2. Fare clic sulla scheda Firma .

  3. Selezionare la casella Firma assembly .

  4. Selezionare <Nuovo> dall'elenco a discesa Scegli un file chiave con nome sicuro.

    Si aprirà la finestra di dialogo Crea chiave con nome sicuro .

  5. Specificare un nome per il file di chiave nella casella Nome file di chiave.

  6. Digitare una password nelle caselle Immettere la password e Conferma password.

  7. Fare clic su OK.

  8. Ricompilare l'applicazione.

Aggiungere il listener

Ora che l'assembly ha un nome sicuro è necessario determinare il nome sicuro del listener in modo che My.Application.Log usi il listener di log.

Il formato di un tipo con nome sicuro è il seguente.

<nome tipo>, <nome assembly>, <numero versione>, <impostazioni cultura>, <nome sicuro>

Per determinare il nome sicuro del listener

  • Il codice seguente illustra come determinare il nome sicuro del tipo per SimpleListener.

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

    Il nome sicuro del tipo dipende dal progetto.

Con il nome sicuro è possibile aggiungere il listener alla raccolta di listener di log My.Application.Log.

Per aggiungere il listener a My.Application.Log

  1. Fare clic con il pulsante destro del mouse su app.config in Esplora soluzioni e scegliere Apri.

    oppure

    Se non è presente un file app.config:

    1. Scegliere Aggiungi nuovo elemento dal menu Progetto.

    2. Nella finestra di dialogo Aggiungi nuovo elemento scegliere File di configurazione dell'applicazione.

    3. Fare clic su Aggiungi.

  2. Individuare la sezione <listeners> all'interno della sezione <source> con l'attributo name "DefaultSource" che si trova nella sezione <sources> . La sezione <sources> si trova nella sezione <system.diagnostics> all'interno della sezione di primo livello <configuration> .

  3. Aggiungere l'elemento seguente alla sezione <listeners>:

    <add name="SimpleLog" />
    
  4. Individuare la sezione <sharedListeners> nella sezione <system.diagnostics> all'interno della sezione di primo livello <configuration> .

  5. Aggiungere l'elemento seguente alla sezione <sharedListeners> :

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

    Modificare il valore di SimpleLogStrongName in modo che sia il nome sicuro del listener.

Vedi anche