Einfache Frage: siehe Titel. Ich benutze .NET 3.5.Gibt es in .NET ein integriertes Protokollierungsframework?
Ausarbeitung: Ich baue ein Plugin, das zur Laufzeit in eine 3rd-Party-Anwendung geladen wird. Die Hauptanwendung verwendet log4net als Protokollierungs-Framework. Es stellt jedoch den Stammprotokollierer nicht bereit, sodass wir nicht protokollieren können. (Ich habe dieses Problem mit den Upstream-Entwicklern angesprochen und sie werden es für ein zukünftiges Release reparieren. In der Zwischenzeit muss ich mir etwas anderes einfallen lassen)
Eine weitere Einschränkung des Systems ist, dass es Benachrichtigungen erhält Damit es ein Plugin lädt, das nicht auf dem lokalen System existiert, wird es das Plugin von einem Server herunterziehen, mit dem es verbunden ist (wenn es auf dem Server existiert), aber es kann nur die Assembly herunterziehen, wo das Plugin lebt . Dies bedeutet, dass keine externen Assemblys und keine .config oder andere Dateien mit dem Plugin bereitgestellt werden können.
Das lässt mich nur mit integrierten .NET-Assemblys und alles in meiner Plugins 'Assembly. Ich möchte jedoch nicht das Rad neu erfinden, indem ich mich selbst ein weiteres Logging-Framework erschaffe, also würde ich gerne wissen, wie der beste Ansatz für dieses Problem wäre.
Ich würde es vorziehen, auf eine Datei zu protokollieren und möchte vermeiden, Dinge in das Windows-Ereignisprotokoll zu dumpen.
"es stellt den Root-Logger nicht aus" - können Sie nicht einfach einen Verweis auf log4net.dll hinzufügen und direkt auf den Root-Logger zugreifen? – Joe
Ich habe versucht, meinen eigenen Root-Logger zu erstellen und zu versuchen, die übergeordneten Anwendungen zu verwenden, ohne Erfolg. Log4net erlaubt nur einen Root-Logger pro Anwendung und die übergeordnete Anwendung erstellt bereits einen. Wenn sie irgendwo ausgestellt wären, wäre ich in der Lage, es zu benutzen, aber das ist nicht der Fall. Ich bin mir nicht sicher, ob es eine Root-Logger pro App oder eine pro AppDomain ist.Wenn es eine pro AppDomain ist, könnte ich versuchen, meine eigene AppDomain von meinem Plugin zu erstellen und dann meinen eigenen Root-Logger zu erstellen. – alimbada