Nous constatons un problème intermittent sur les machines de développement et de production dans lequel nos fichiers journaux ne sont pas connectés.
Lors de l'exécution en développement et débogage à l'aide de Visual Studio, nous obtenons les messages d'erreur log4net suivants dans la fenêtre de sortie VS:
log4net:ERROR [RollingFileAppender] Unable to acquire lock on file C:\folder\file.log.
Le processus ne peut pas accéder au fichier «C: \ dossier \ file.log» car il est utilisé par un autre processus.
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 section de configuration devrait ressembler à:
<section
name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
Notre solution de contournement actuelle pour le problème consiste à renommer le dernier fichier journal. Nous nous attendrions bien sûr à ce que cela échoue (en raison du verrouillage de fichier susmentionné), mais ce n'est normalement pas le cas. Une ou deux fois, le changement de nom a échoué en raison d'un verrou du processus aspnet_wp.exe .
Notre section de configuration log4net est illustrée ci-dessous:
<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>
Comme mentionné, nous voyons cela par intermittence sur les machines, mais une fois que le problème survient, il persiste.