Útmutató: Nyomkövetési figyelők létrehozása és inicializálása

Az System.Diagnostics.Debug osztályok és System.Diagnostics.Trace osztályok üzeneteket küldenek az üzeneteket fogadó és feldolgozó figyelőknek nevezett objektumoknak. Az egyik ilyen figyelő, a System.Diagnostics.DefaultTraceListener, automatikusan létrejön és inicializálódik, ha engedélyezve van a nyomkövetés vagy a hibakeresés. Ha azt szeretné Trace , hogy a Debug kimenet bármely további forráshoz legyen irányítva, további nyomkövetési figyelőket kell létrehoznia és inicializálnia.

A létrehozott figyelőknek tükrözniük kell az alkalmazás igényeit. Ha például az összes nyomkövetési kimenet szöveges rekordját szeretné létrehozni, hozzon létre egy figyelőt TextWriterTraceListener , amely az összes kimenetet egy új szövegfájlba írja, ha engedélyezve van. Ha viszont csak az alkalmazás végrehajtása során szeretné megtekinteni a kimenetet, hozzon létre egy figyelőt ConsoleTraceListener , amely az összes kimenetet egy konzolablakba irányítja. A EventLogTraceListener nyomkövetési kimenet egy eseménynaplóba irányítható. További információ: Nyomkövetési figyelők.

Nyomkövetési figyelőket létrehozhat egy alkalmazáskonfigurációs fájlban vagy a kódban. Az alkalmazáskonfigurációs fájlok használatát javasoljuk, mert lehetővé teszik a nyomkövetési figyelők hozzáadását, módosítását vagy eltávolítását anélkül, hogy módosítania kellene a kódot.

Nyomkövetési figyelő létrehozása és használata konfigurációs fájl használatával

  1. Deklarálja a nyomkövetési figyelőt az alkalmazáskonfigurációs fájlban. Ha a létrehozott figyelő más objektumokat is igényel, deklarálja őket is. Az alábbi példa bemutatja, hogyan hozhat létre egy figyelőt, amely myListener a szövegfájlba TextWriterOutput.logír.

    <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 A kódban szereplő osztály használatával írjon üzenetet a nyomkövetési figyelőknek.

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

Nyomkövetési figyelő létrehozása és használata kódban

  • Adja hozzá a nyomkövetési figyelőt a Listeners gyűjteményhez, és küldje el a nyomkövetési információkat a figyelőknek.

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

    -Vagy-

  • Ha nem szeretné, hogy a figyelő nyomkövetési kimenetet kapjon, ne adja hozzá a Listeners gyűjteményhez. A figyelő saját kimeneti módszereinek meghívásával a gyűjteményétől Listeners független figyelőn keresztül bocsáthat ki kimenetet. Az alábbi példa bemutatja, hogyan írhat vonalat egy olyan figyelőnek, amely nem szerepel a Listeners gyűjteményben.

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

Lásd még