Dela via


Gör så här: Skapa och initiera spårningslyssnare

Kommentar

Den här artikeln är specifik för .NET Framework. Det gäller inte för nyare implementeringar av .NET, inklusive .NET 6 och senare versioner.

Klasserna System.Diagnostics.Debug och System.Diagnostics.Trace skickar meddelanden till objekt som kallas lyssnare som tar emot och bearbetar dessa meddelanden. En sådan lyssnare, System.Diagnostics.DefaultTraceListener, skapas automatiskt och initieras när spårning eller felsökning aktiveras. Om du vill Trace att eller Debug utdata ska dirigeras till ytterligare källor måste du skapa och initiera ytterligare spårningslyssnare.

Lyssnarna som du skapar bör återspegla programmets behov. Om du till exempel vill ha en textpost med alla spårningsutdata skapar du en TextWriterTraceListener lyssnare som skriver alla utdata till en ny textfil när den är aktiverad. Om du däremot bara vill visa utdata under programkörningen skapar du en ConsoleTraceListener lyssnare som dirigerar alla utdata till ett konsolfönster. EventLogTraceListener Kan dirigera spårningsutdata till en händelselogg. Mer information finns i Spåra lyssnare.

Du kan skapa spårningslyssnare i en programkonfigurationsfil eller i koden. Vi rekommenderar att du använder programkonfigurationsfiler eftersom de låter dig lägga till, ändra eller ta bort spårningslyssnare utan att behöva ändra koden.

Skapa och använda en spårningslyssnare med hjälp av en konfigurationsfil

  1. Deklarera spårningslyssnaren i programkonfigurationsfilen. Om lyssnaren du skapar kräver andra objekt deklarerar du dem också. I följande exempel visas hur du skapar en lyssnare med namnet myListener som skriver till textfilen 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. Trace Använd klassen i koden för att skriva ett meddelande till spårningslyssnare.

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

Skapa och använda en spårningslyssnare i kod

  • Lägg till spårningslyssnaren i Listeners samlingen och skicka spårningsinformation till lyssnarna.

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

    - eller -

  • Om du inte vill att lyssnaren ska ta emot spårningsutdata ska du inte lägga till den i Listeners samlingen. Du kan generera utdata via en lyssnare som är oberoende av Listeners samlingen genom att anropa lyssnarens egna utdatametoder. I följande exempel visas hur du skriver en rad till en lyssnare som inte finns i Listeners samlingen.

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

Se även