개발 및 프로덕션 시스템에서 로그 파일이 기록되지 않는 간헐적 인 문제가 있습니다.
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 프로세스 의 잠금으로 인해 이름 바꾸기가 한두 번 실패했습니다 .
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>
언급했듯이, 우리는이 문제가 컴퓨터에서 간헐적으로 발생하지만 일단 문제가 발생하면 지속됩니다.