Log4net intermitente problema de archivo bloqueado RollingFileAppender

Estamos viendo un problema intermitente en las máquinas de desarrollo y producción, por lo que nuestros archivos de registro no se registran.

Cuando se ejecuta en desarrollo y depuración usando Visual Studio, obtenemos los siguientes mensajes de error log4net en la ventana de resultados de VS:

log4net:ERROR [RollingFileAppender] Unable to acquire lock on file C:\folder\file.log.

El proceso no puede acceder al archivo 'C: \ folder \ file.log' porque está siendo usado por otro proceso.

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.

La sección de configuración debería verse como:

<section
  name="log4net"
  type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />

Nuestra solución actual para el problema es cambiar el nombre del último archivo de registro. Por supuesto, esperaríamos que esto fallara (debido al bloqueo de archivo mencionado anteriormente), pero normalmente no lo hace. Una o dos veces, el cambio de nombre ha fallado debido a un bloqueo delaspnet_wp.exe proceso.

Nuestra sección de configuración de log4net se muestra a continuación:

<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>

Como se mencionó, estamos viendo esto de forma intermitente en las máquinas, pero una vez que el problema ocurre, persiste.

Respuestas a la pregunta(3)

Su respuesta a la pregunta