Zeitweiliges Problem mit gesperrten log4net RollingFileAppender-Dateien

Bei Entwicklungs- und Produktionsmaschinen tritt zeitweise ein Problem auf, bei dem unsere Protokolldateien nicht protokolliert werden.

Bei der Ausführung in 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: \ Ordner \ Datei.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 erwarten natürlich, dass dies fehlschlägt (aufgrund der oben genannten Dateisperre), aber normalerweise nicht. Ein- oder zweimal ist die Umbenennung aufgrund einer Sperre von fehlgeschlagenaspnet_wp.exe verarbeiten.

Unser Abschnitt zur log4net-Konfiguration 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]&#xA;"/>
      <footer value="[Footer]&#xA;"/>
      <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, sehen wir dies gelegentlich auf Maschinen, aber sobald das Problem auftritt, bleibt es bestehen.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage