Delen via


Procedure: Trace-listeners maken en initialiseren

Notitie

Dit artikel is specifiek voor .NET Framework. Dit geldt niet voor nieuwere implementaties van .NET, waaronder .NET 6 en nieuwere versies.

De System.Diagnostics.Debug en System.Diagnostics.Trace klassen verzenden berichten naar objecten die listeners worden genoemd die deze berichten ontvangen en verwerken. Een dergelijke listener, de System.Diagnostics.DefaultTraceListener, wordt automatisch gemaakt en geïnitialiseerd wanneer tracering of foutopsporing is ingeschakeld. Als u wilt Trace dat of Debug uitvoer naar aanvullende bronnen wordt omgeleid, moet u extra traceerlisteners maken en initialiseren.

De listeners die u maakt, moeten overeenkomen met de behoeften van uw toepassing. Als u bijvoorbeeld een tekstrecord van alle traceringsuitvoer wilt, maakt u een TextWriterTraceListener listener die alle uitvoer naar een nieuw tekstbestand schrijft wanneer deze is ingeschakeld. Als u echter alleen uitvoer wilt weergeven tijdens het uitvoeren van de toepassing, maakt u een ConsoleTraceListener listener, die alle uitvoer naar een consolevenster stuurt. De EventLogTraceListener uitvoer van de tracering kan worden omgeslagen naar een gebeurtenislogboek. Zie Trace Listeners voor meer informatie.

U kunt traceringslisteners maken in een toepassingsconfiguratiebestand of in uw code. U wordt aangeraden toepassingsconfiguratiebestanden te gebruiken, omdat u hiermee traceringslisteners kunt toevoegen, wijzigen of verwijderen zonder dat u uw code hoeft te wijzigen.

Een traceringslistener maken en gebruiken met behulp van een configuratiebestand

  1. Declareer uw traceringslistener in uw toepassingsconfiguratiebestand. Als de listener die u maakt andere objecten vereist, declareert u deze ook. In het volgende voorbeeld ziet u hoe u een listener myListener maakt die naar het tekstbestand TextWriterOutput.logschrijft.

    <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. Gebruik de Trace klasse in uw code om een bericht naar de traceringslisteners te schrijven.

    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();
    

Een traceerlistener maken en gebruiken in code

  • Voeg de traceerlistener toe aan de Listeners verzameling en verzend traceringsgegevens naar de listeners.

    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();
    

    - of -

  • Als u niet wilt dat de listener traceringsuitvoer ontvangt, voegt u deze niet toe aan de Listeners verzameling. U kunt uitvoer verzenden via een listener die onafhankelijk is van de Listeners verzameling door de eigen uitvoermethoden van de listener aan te roepen. In het volgende voorbeeld ziet u hoe u een regel schrijft naar een listener die zich niet in de Listeners verzameling bevindt.

    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();
    

Zie ook