Frage

Ich arbeite eine RollingFileAppender in log4net programmatisch auf die Konfiguration. Ich habe so etwas wie dies zur Zeit:

RollingFileAppender fa = new RollingFileAppender();
fa.AppendToFile = true;
fa.RollingStyle = RollingFileAppender.RollingMode.Date;
fa.DatePattern = "yyyyMMdd";
fa.StaticLogFileName = true;
// Set more properties and add the appender to the root repository

Diese weigert sich, das Protokoll basierend auf dem Datum zu rollen. Wenn ich die RollingStyle zu Größe oder Composite-Schalter, wird es dann rollen, sondern nur Größe basiert, nicht Datum basiert. Ich habe versucht, die StaticLogFileName zu entfernen und um mit dem DatePattern ohne Erfolg zu spielen.

Ich habe diese programmatisch konfigurieren, wie ich die Anzahl der Appen zur Laufzeit nicht kennen, so konfigurieren, dass die Verwendung von XML, die ich habe in der Lage gewesen, in der Vergangenheit zu erhalten arbeiten, ist ein No-Go. Hat jemand irgendwelche Ideen? Bin ich etwas fehlt?

War es hilfreich?

Lösung

Dieses Verhalten ist aufgrund der Tatsache, dass RollingFileAppender (und viele andere Appen sowie Filter) implementiert ActivateOptions Methode für dieses Objekt aufgerufen werden muss, nachdem die Konfigurationseigenschaften festgelegt wurden. Bis ActivateOptions dieses Objekt aufgerufen werden in einem undefinierten Zustand ist und nicht verwendet werden muss. "

Wenn Adapter über XML-Dateien zu konfigurieren müssen Sie denken über die Aktivierung nicht, da sie durch den log4net Konfigurator wird.

Andere Tipps

Ich habe einen Anruf zu ActivateOptions () nach der Datei appender Einrichtung aber vor dem appender die Hierarchie hinzugefügt, und das schien zu funktionieren. Warum ohne den Anruf einige Optionen stecken, aber andere nicht, ist eine Frage für einen anderen Tag.

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