Chúng tôi đang gặp sự cố không liên tục trên các máy phát triển và sản xuất, theo đó các tệp nhật ký của chúng tôi không được đăng nhập.
Khi chạy trong quá trình phát triển và gỡ lỗi bằng Visual Studio, chúng tôi nhận được thông báo lỗi log4net sau trong cửa sổ đầu ra VS:
log4net:ERROR [RollingFileAppender] Unable to acquire lock on file C:\folder\file.log.
Quá trình không thể truy cập tệp 'C: \ folder \ file.log' vì nó đang được sử dụng bởi một quá trình khác.
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.
Phần cấu hình sẽ giống như sau:
<section
name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
Giải pháp hiện tại của chúng tôi cho vấn đề này là đổi tên tệp nhật ký cuối cùng. Tất nhiên, chúng tôi sẽ mong đợi điều này không thành công (do khóa tệp nói trên), nhưng nó thường không. Một hoặc hai lần việc đổi tên không thành công do bị khóa từ quá trình aspnet_wp.exe .
Phần cấu hình log4net của chúng tôi được hiển thị bên dưới:
<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>
Như đã đề cập, chúng tôi thấy điều này không liên tục trên máy, nhưng khi sự cố xảy ra, nó vẫn tiếp diễn.