Best practices für die Erstellung eines logger-Bibliothek, die mit log4net. Ist

Mein Ziel ist, erstellen Sie eine log4net-Bibliothek, die geteilt werden können, die über mehrere Projekte.

In meiner Lösung, die in .net 4.0 habe ich eine Klasse Bibliothek mit dem Namen Logger und verwiesen wird, die von web-Projekt.

Nun erstellte ich einen logger.config in der Bibliothek-Klasse und setzen Sie die gesamte Konfiguration im logger.config-Datei. Ich habe dann

[assembly: log4net.Config.XmlConfigurator(Watch = true, ConfigFile = "Logger.config")]

Wenn ich die web app nicht angemeldet. Also fügte ich diese Zeile von code in web.config

<add key="log4net.Internal.Debug" value="true"/> 

gab mir debugging-Informationen und Fehler-Informationen

Konnte nicht finden, Konfiguration, Abschnitt "log4net" in der Anwendung .config-Datei. Überprüfen Sie Ihre .config-Datei für den und-Elementen. Die Konfiguration sollte der Abschnitt wie folgt Aussehen:

Zog ich die Konfiguration von logger.config in web.config und alles scheint gut zu funktionieren.

Ich nicht wollen, dass der log4net Konfiguration in web.config, aber haben es logger.config als ein sauberer Ansatz. Ziel ist es, für andere Projekte, die diese Bibliothek verwenden und sich keine Gedanken über Konfiguration, bei jedem Projekt.

Die Frage ist jetzt, Wie mache ich das? Was mache ich falsch? Jeder Vorschlag mit code-Beispiel von Vorteil sein wird für alle.

FYI, ich bin mit Struktur anzeigen IOC reslove der logger vor der Anmeldung zu.

  • Ich würde vorschlagen, nicht die Erstellung eines logger-Bibliothek - nutzen Sie einfach log4net direkt. Vielleicht schaffen Sie noch ein paar Erweiterung Methoden auf die ILog wenn Sie wirklich brauchen, um.
  • haben Sie versucht, die fallen der logger.config-Datei in Ihr "bin" - Ordner?
  • Ich vermute, dass Sie noch nicht konfiguriert die config-Datei auf "Immer Kopieren" oder "Kopieren, wenn neuer" auf zu bauen. Diese Arten von Dateien sind in der Regel auf "Nicht Kopieren".
  • Wo ist dein logger.config-Datei befindet? In der Logger-Klasse Bibliothek oder in das Projekt, in dem es verwendet? Auch, wie Sie die Lösung der logger von Ihrem IOC?
Schreibe einen Kommentar