開発マシンと運用マシンで、ログ ファイルがログに記録されない断続的な問題が発生しています。
Visual Studio を使用して開発およびデバッグを実行すると、VS 出力ウィンドウに次の log4net エラー メッセージが表示されます。
log4net:ERROR [RollingFileAppender] Unable to acquire lock on file C:\folder\file.log.
別のプロセスで使用されているため、プロセスはファイル 'C:\folder\file.log' にアクセスできません。
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.
構成セクションは次のようになります。
<section
name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
この問題に対する現在の回避策は、最後のログ ファイルの名前を変更することです。もちろん、(前述のファイル ロックのために) これが失敗することが予想されますが、通常はそうではありません。aspnet_wp.exeプロセスからのロックが原因で、名前の変更が 1 回か 2 回失敗しました。
log4net 構成セクションを以下に示します。
<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>
前述のように、これはマシンで断続的に見られますが、問題が発生すると持続します。