Procedura: creare e inizializzare listener di traccia

Le classi System.Diagnostics.Debug e System.Diagnostics.Trace inviano messaggi a oggetti detti listener, che li ricevono e li elaborano. Uno di questi listener, System.Diagnostics.DefaultTraceListener, viene creato e inizializzato automaticamente quando si abilita la traccia o il debug. Se si vuole indirizzare l'output di Trace o Debug a origini aggiuntive, è necessario creare e inizializzare listener di traccia aggiuntivi.

I listener devono essere creati in base alle esigenze dell'applicazione. Se, ad esempio, si desidera un record di testo di tutti gli output di traccia, creare un listener TextWriterTraceListener, che, quando è abilitato, scrive tutto l'output in un nuovo file di testo. Se invece si vuole visualizzare l'output solo durante l'esecuzione dell'applicazione, creare un listener ConsoleTraceListener, che indirizza tutto l'output a una finestra della console. Il listener EventLogTraceListener è in grado di indirizzare l'output di traccia a un registro eventi. Per altre informazioni, vedere Listener di traccia.

È possibile creare listener di traccia in un file di configurazione dell'applicazione o nel codice. È consigliabile usare file di configurazione dell'applicazione, in quanto consentono di aggiungere, modificare o rimuovere listener di traccia senza dover modificare il codice.

Per creare e usare un listener di traccia tramite un file di configurazione

  1. Dichiarare il listener di traccia nel file di configurazione dell'applicazione. Se il listener che si sta creando richiede altri oggetti, dichiarare anche tali oggetti. L'esempio seguente mostra come creare un listener denominato myListener che scrive nel file di testo TextWriterOutput.log.

    <configuration>
      <system.diagnostics>
        <trace autoflush="false" indentsize="4">
          <listeners>
            <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TextWriterOutput.log" />
            <remove name="Default" />
          </listeners>
        </trace>
      </system.diagnostics>
    </configuration>
    
  2. Usare la classe Trace nel codice per scrivere un messaggio nei listener di traccia.

    Trace.TraceInformation("Test message.")
    ' You must close or flush the trace to empty the output buffer.
    Trace.Flush()
    
    Trace.TraceInformation("Test message.");
    // You must close or flush the trace to empty the output buffer.
    Trace.Flush();
    

Per creare e usare un listener di traccia nel codice

  • Aggiungere il listener di traccia alla raccolta Listeners e inviare le informazioni di traccia ai listener.

    Trace.Listeners.Add(New TextWriterTraceListener("TextWriterOutput.log", "myListener"))
    Trace.TraceInformation("Test message.")
    ' You must close or flush the trace to empty the output buffer.
    Trace.Flush()
    
    Trace.Listeners.Add(new TextWriterTraceListener("TextWriterOutput.log", "myListener"));
    Trace.TraceInformation("Test message.");
    // You must close or flush the trace to empty the output buffer.
    Trace.Flush();
    

    - oppure -

  • Se non si vuole che il listener riceva l'output di traccia, non aggiungerlo alla raccolta Listeners. È possibile trasmettere l'output tramite un listener indipendentemente dalla raccolta Listeners chiamando i metodi di output del listener stesso. L'esempio seguente mostra come scrivere una riga in un listener non incluso nella raccolta Listeners.

    Dim myListener As New TextWriterTraceListener("TextWriterOutput.log", "myListener")
    myListener.WriteLine("Test message.")
    ' You must close or flush the trace listener to empty the output buffer.
    myListener.Flush()
    
    TextWriterTraceListener myListener = new TextWriterTraceListener("TextWriterOutput.log", "myListener");
    myListener.WriteLine("Test message.");
    // You must close or flush the trace listener to empty the output buffer.
    myListener.Flush();
    

Vedi anche