Kami melihat masalah terputus-putus pada mesin pengembangan dan produksi yang tidak dapat diakses oleh file log kami.
Saat menjalankan pengembangan dan debugging menggunakan Visual Studio kami mendapatkan pesan galat log4net berikut di jendela keluaran VS:
log4net:ERROR [RollingFileAppender] Unable to acquire lock on file C:\folder\file.log.
Proses tidak dapat mengakses file 'C: \ folder \ file.log' karena sedang digunakan oleh proses lain.
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.
Bagian konfigurasi akan terlihat seperti ini:
<section
name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
Solusi kami saat ini untuk masalah ini adalah dengan mengganti nama file log terakhir. Kami tentu saja berharap ini gagal (karena kunci file yang disebutkan di atas), tetapi biasanya tidak. Sekali atau dua kali penggantian nama gagal karena kunci dari proses aspnet_wp.exe .
Bagian konfigurasi log4net kami ditunjukkan di bawah ini:
<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>
Seperti yang disebutkan, kami melihat ini sesekali di komputer, tetapi begitu masalah terjadi, masalah tetap ada.
sumber
Perhatikan juga FAQ log4net :
sumber
Jika Anda memiliki
dan tambahkan
maka akan terjadi error saat rolling terjadi. Proses pertama akan membuat file baru dan mengganti nama file saat ini. Kemudian proses selanjutnya akan melakukan hal yang sama dan mengambil file yang baru dibuat dan menimpa file yang baru diganti namanya. Menghasilkan logfiel untuk hari terakhir menjadi kosong.
sumber