Frage

Ich versuche, mein Programm mit einiger Logging-Funktionalität von System.Diagnostics bereitgestellt zu verbessern. Da meine Lösung von mehreren Projekten besteht, wollte ich einen Schalter für die gesamte Anwendung und einem für jedes Projekt erstellen.

Nun ist die Frage, wie kann ich dies erreichen und wo soll ich die Schalter Definition setzen?

Beginnend mit der Anwendung breiten Schalter, da es nicht so etwas wie globale Variablen in C # ist, wie ich es verstanden, wie ich das erreichen kann?

Wird setzen

static TraceSwitch ApplicationSwitch = new TraceSwitch("Application", "Enables logging in the whole application.");

einmal in jeder Klasse lösen dieses oder würde dies eher so viel Schalter schaffen, wie es Klassen gibt, die jeweils mit dem gleichen Namen? (Meine Vermutung ist, letztere)

Oder soll ich die Initialisierung einmal in einer separaten Klasse

static class GlobalSwitch
{
    static TraceSwitch Application = new TraceSwitch("Application", "Enables logging in the whole application.");
}

und Verweis auf sie von jeder anderen Klasse wie folgt

public OtherClass
{
    static TraceSwitch Application = GlobalSwitch.Application;
}

Dies würde lösen mit 1 Schalter für ein ganzes Projekt, aber das ist eine gute Praxis?

In Bezug auf die Anwendung breite Schalter, würde ich das Projekt verweisen habe die GlobalSwitch Klasse in jedem anderen Projekt enthält, die ich, wenn möglich, vermeiden möchte.

Einige Hinweise darauf, wie diese können die intelligente Art und Weise durchgeführt werden würden sehr geschätzt werden.

War es hilfreich?

Lösung

I wickeln in der Regel Spur Schalter (log-Funktionen) in eine zentrale Protokollierung Montage, eine statische Schnittstelle an den Schalter (n) und auch statische Protokollverfahren ausgesetzt wird, die die zugrunde liegende Protokollfunktionalität in Gebrauch nennen (in der Regel Trace.Write-Funktionen ).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top