2012-10-28 15 views
7

In meinem web.config ich habe:Wie kann ich den aktuellen Trace Switch programmatisch bekommen?

<system.diagnostics> 
    <switches> 
    <add name="logLevelSwitch" value="1" /> 
    </switches> 
</system.diagnostics> 

Gibt es eine Möglichkeit, dass ich zum Beispiel nennen könnte:

System.Diagnostics.TraceSwitch["logLevelSwitch"] erhalten den aktuellen Wert?

+0

hast du irgendeine lösung dafür? –

Antwort

4

Sobald Sie den Schalterwert in Ihrer web.config-Datei definiert haben, ist es einfach, diesen Wert aus Ihrer Anwendung zu erhalten, indem ein TraceSwitch mit dem gleichen Namen zu erstellen:

private static TraceSwitch logSwitch = new TraceSwitch("logLevelSwitch", 
    "This is your logLevelSwitch in the config file"); 

public static void Main(string[] args) 
{ 
    // you can get its properties value then: 
    Console.WriteLine("Trace switch {0} is configured as {1}", 
     logSwitch.DisplayName, 
     logSwitch.Level.ToString()); 

    // and you can use it like this: 
    if (logSwitch.TraceError) 
     Trace.WriteLine("This is an error"); 

    // or like this also: 
    Trace.WriteLineIf(logSwitch.TraceWarning, "This is a warning"); 
} 

Darüber hinaus dafür zu arbeiten, nach Zur Dokumentation:

Sie müssen Tracing oder Debugging aktivieren, um einen Switch zu verwenden. Die folgende Syntax ist compilerspezifisch. Wenn Sie andere Compiler als C# oder Visual Basic verwenden, lesen Sie die Dokumentation für Ihren Compiler.

Um in C#, fügen Sie die /d:DEBUG Flag an den Compiler-Befehlszeile enabledebugging, wenn Sie Ihren Code kompilieren, oder Sie können #define DEBUG an die Spitze der Dateien hinzuzufügen. Fügen Sie in dem Visual Basic das /d:DEBUG=True-Flag zu der Compiler-Befehlszeile hinzu.

Damit Verwendung in C# Tracing, fügen Sie den /d:TRACE Flag die Compiler-Befehlszeile, wenn Sie Ihren Code kompilieren, oder #define TRACE zum Anfang der Datei hinzufügen. Fügen Sie in Visual Basic das Flag /d:TRACE=True der Compiler-Befehlszeile hinzu.

+1

funktioniert nicht für mich. sagt immer "aus". –

+1

@bilalfazlani Sehen Sie, ob meine Bearbeitung eine Hilfe ist –

+0

Das war hilfreich. Vielen Dank! –

Verwandte Themen