Logging in .net

From no name for this wiki
Jump to: navigation, search

Hier das Analog zu Javas Log4J. Eventuell Trace mit der C# Compileroption /d:TRACE=True oder #define TRACE einschalten. TraceSource ist etwas mächtiger als Trace.

TraceSource

Im Code

Eine wichtige Klasse die die TraceSource mit der Methode TraceEvent.

#define TRACE
TraceSource mySource = new TraceSource("myTraceSrc");
mySource.TraceInformation("Hello World!");
mySource.TraceEvent(TraceEventType.Error, 5, "Hello World!");
mySource.TraceData(TraceEventType.Critical, 11, new object[] { 1, 2, 3 });
mySource.TraceData(TraceEventType.Information, 11, 11, 214, 2.3, "Hello", 't');
mySource.Close();

Config File

Mit einem Switch kann festgelegt werden, welches Level geloggt wird.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <system.diagnostics>
      <sources>
            <source name="myTraceSrc" switchName="switch1">
                <listeners>
                    <add initializeData="output.txt" 
                         type="System.Diagnostics.TextWriterTraceListener"
                         name="myLocalListener" />                   
                </listeners>
            </sourc-e> 
        </sources> 
        <switches>
            <add name="switch1" value="Information" />
        </switches>
    </system.diagnostics>
</configuration>

Trace

Im Code

    Trace.Write("ASP.NET TRACE","BLA BLA.");

Configfile

<system.diagnostics>
  <trace>
    <listeners>
        <add initializeData="output.txt" 
             type="System.Diagnostics.TextWriterTraceListener"
             name="myLocalListener" />                   
        </listeners>
  </trace>
</system.diagnostics>

Resourcen