Share nlog config mit mehreren Projekten und die richtige threadsafe Weg, um alle in die gleiche Protokolldatei schreiben?

8

Mein Programm besteht aus einer einzelnen EXE und sechs DLLs (und natürlich jeder verweist auf alle), ich habe derzeit eine rohe statische Logging-Klasse (Logger), die in einer eigenen DLL (Logger.dll) ist, die ich als Referenz hinzufügen zu jedem meiner Projekte und zu verwenden ... aber anstatt das Rad neu zu erfinden, wollte ich dieses durch nLog ersetzen.

Problem ist, ich kann nicht herausfinden, wie alle meine Projekte die gleiche nLog-Konfigurationsdatei teilen können (ich möchte, dass sich alles bei der SAME-Datei anmeldet und ich keine Konfigurationsdatei pro Projekt definieren möchte).

>
  1. Gibt es eine Möglichkeit, eine einzige Konfigurationsdatei für alle meine Projekte zu haben?
  2. ist das sicher zu tun? Wird sich bei jedem Projekt, das auf dieselbe Datei zugreift, keine Konkurrenzprobleme ergeben? Behandelt nLog das schon richtig?

Oder wäre es einfach das Beste für mich, nLog in meine statische Logger.dll zu packen (seltsam zu tun, würde aber auch funktionieren) und Dinge zu tun, wie ich es heute in meiner Anwendung mache?

Danke,

    
JSchwartz 13.12.2012, 06:42
quelle

1 Antwort

7

NLog sollte damit umgehen, was Sie wollen. Die NLog.config-Datei wird auf der Anwendungsebene (EXE) angewendet. Wenn Sie NLog in NLog.config konfigurieren, wird die Konfiguration daher beim Start der Anwendung gelesen. Alle Klassen, ob in der EXE oder in einer Ihrer DLLs, wenn sie einen Logger von NLog abrufen, geben einen Logger zurück, der entsprechend der Datei NLog.config der EXE-Ebene konfiguriert wurde.

    
wageoghe 13.12.2012, 15:30
quelle

Tags und Links