Frage

Nach dem Log4Net Dokumentation , die RollingFileAppender werden nur die Protokolldatei rollen, wenn eine Nachricht protokolliert. Ich muß diese Datei protokollieren, aber es jeden Tag in einer anderen Datenbank zu importieren. Ich kann keine Datenbank appender verwenden, da ich die Dateien benötigen, und ich habe die Daten aus der Protokolldatei in die Datenbank zu übersetzen (es ist nicht eine direkte Kopie). Das Problem ist, wenn es keine Log-Aktivität nach Mitternacht ist, wird das Protokoll nicht rollen. Der Importeur sucht die Vortage Datei (und ich kann nicht diesen Code ändern), so dass, wenn es keine Aktivität ist und das Protokoll nicht gerollt hat, hat der Importeur die Datei nicht finden. Gibt es trotzdem, um das Protokoll zu erzwingen, um Mitternacht zu rollen, ohne einen weiteren Faden aufweist, der aufwacht und zwingt sie zu rollen? Könnte eine benutzerdefinierte appender dies tun? Ich möchte dies vermeiden, wenn möglich.

War es hilfreich?

Lösung

einen Windows-Dienst schreiben, die ein Ereignis ausgelöst werden kurz nach Mitternacht, die einen Dummy-Protokolleintrag mit der gleichen Konfiguration schreibt.

Andere Tipps

Sie haben über diesen von dem Punkt der Frage zu denken „welche Codepfade zu Überroll Routine führen?“. Sobald Sie wissen, wie diese Routine erreicht ist, können Sie entscheiden, wie es ausgelöst wird.

Könnte eine benutzerdefinierte appender es tun? Sicher, aber kein Code in der Appen wird ausgeführt, bis Sie über sie log, so dass Sie Platz sind wieder ein.

Was die Frage „Gibt es trotzdem, um das Protokoll zu erzwingen, um Mitternacht zu rollen, ohne einen weiteren Faden aufweist, die es aufwacht und Kräfte zu rollen?“, Würde ich sagen, dass diese Frage auf „äquivalent ist, ist es möglich, die Kraft einzuloggen um Mitternacht zu rollen, ohne Code zu sein laufen?“. Ich versuche, nicht darüber lustig zu sein, oder Sie zu beleidigen, ich versuche nur, die Frage in einer Art und Weise neu zu formulieren, die hoffentlich für Sie beantworten. : -)

Der einfachste Weg, dies zu lösen ist, um etwas wake zu haben und melden Sie sich um die Datei zu zwingen, sich zu drehen.

Nach dem RollingFileAppender Dokumentation Sie es einrichten können sehen auf einer täglichen Basis zu rollen, diese Konfiguration:

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="logfile" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
</appender>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top