2010-10-30 9 views
5
Anmeldung

Ich Konfigurieren log4net mit:Log4Net bis AppPool recycle wartet, bevor es zu mssql2008 Datenbank

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

Ich habe 2 Appen konfiguriert: 1. Ein AdoNetAppender auf einer mssql2008 Datenbank in eine Log-Tabelle anzumelden. 2. FileAppender die wie folgt aussieht gerade:

<appender name="FileAppender" type="log4net.Appender.FileAppender"> 
    <file value="c:\log-file.txt" /> 
    <appendToFile value="true" /> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> 
    </layout> 
</appender> 

Das Problem ist, dass, wenn eine Aktion angemeldet wird, es sofort in log-file.txt erscheint. Es wird nicht als Eintrag in der Datenbank angezeigt, bis ich entweder den URL-Code lösche, den Webcode neu kompiliere oder den App-Pool recycle.

Die Konfiguration scheint richtig, da die Aktion schließlich in der Datenbank protokolliert wird. Ich verstehe einfach nicht warum die Verzögerung.

Kann jemand mir einen Grund geben oder mir sagen, wie man es repariert?

Antwort

8

Der AdoNetAppender ist ein gepufferter Appender. Wenn Sie wollen, dass es direkt in die Datenbank schreibt, müssen Sie die Puffergröße auf 1:

setzen
+0

Danke für ^^ Diese Antwort Stefan, sehr geschätzt. –

+0

Große Antwort. Ich habe nur alle paar Minuten Protokolle zu meinem Tisch oder wenn ich den IIS-App-Pool recycelte. Konnte es nicht herausfinden, bis ich diesen Beitrag über die Puffergröße sah ... macht Sinn. Danke Stefan – barneymc

Verwandte Themen