Bei Entwicklungs- und Produktionsmaschinen tritt zeitweise ein Problem auf, bei dem unsere Protokolldateien nicht protokolliert werden.
Bei der Entwicklung und beim Debuggen mit Visual Studio werden im VS-Ausgabefenster die folgenden log4net-Fehlermeldungen angezeigt:
log4net:ERROR [RollingFileAppender] Unable to acquire lock on file C:\folder\file.log.
Der Prozess kann nicht auf die Datei 'C: \ folder \ file.log' zugreifen, da sie von einem anderen Prozess verwendet wird.
log4net:ERROR XmlConfigurator: Failed to find configuration section 'log4net' in the application's .config file.
Check your .config file for the <log4net> and <configSections> elements.
Der Konfigurationsabschnitt sollte folgendermaßen aussehen:
<section
name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
Unsere aktuelle Problemumgehung besteht darin, die letzte Protokolldatei umzubenennen. Wir würden natürlich erwarten, dass dies fehlschlägt (aufgrund der oben genannten Dateisperre), aber normalerweise nicht. Ein- oder zweimal ist die Umbenennung aufgrund einer Sperre des Prozesses aspnet_wp.exe fehlgeschlagen .
Unser log4net-Konfigurationsabschnitt ist unten dargestellt:
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\folder\file.log"/>
<appendToFile value="true" />
<datePattern value="yyyyMMdd" />
<rollingStyle value="Date" />
<maximumFileSize value="10MB" />
<maxSizeRollBackups value="100" />
<layout type="log4net.Layout.PatternLayout">
<header value="[Header]
"/>
<footer value="[Footer]
"/>
<conversionPattern value="%date %-5level %logger ${COMPUTERNAME} %property{UserHostAddress} [%property{SessionID}] - %message%newline"/>
</layout>
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
Wie bereits erwähnt, tritt dies zeitweise auf Computern auf, aber sobald das Problem auftritt, bleibt es bestehen.
quelle
Beachten Sie auch die log4net-FAQ :
quelle
Wenn Sie haben
und hinzufügen
dann tritt ein Fehler auf, während das Rollen stattfindet. Der erste Prozess erstellt die neue Datei und benennt die aktuelle Datei um. Dann machen die nächsten Prozesse dasselbe und nehmen die neu erstellte Datei und überschreiben die neu umbenannte Datei. Das Ergebnis ist, dass der Logfiel für den letzten Tag leer ist.
quelle