Aralıklı log4net RollingFileAppender kilitli dosya sorunu
Günlük dosyalarında günlüğe almıyor sayede geliştirme ve üretim makinelerde aralıklı bir sorun görüyoruz.
Geliştirme ve hata ayıklama Visual Studio kullanarak çalıştırırken VS çıktı penceresinde aşağıdaki log4net hata mesajları alıyoruz:
log4net:ERROR [RollingFileAppender] Unable to acquire lock on file C:\folder\file.log.
İşlem dosyasına erişemiyor 'C:\folder\file.log' başka bir işlem tarafından kullanılmakta olduğu için.
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.
Yapılandırma bölümü gibi görünmelidir:
<section
name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
Konu için geçerli bizim çözüm son günlük dosyasını yeniden adlandırın. Elbette bu başarısız olmasını bekleriz (söz konusu dosya kilidi nedeniyle), ama normalde yok. Bir ya da iki kez yeniden bir kilit nedeniyle başarısız oldu . ben^>aspnet_wp.exesüreç.
Log4net yapılandırması bölümü aşağıda gösterilmiştir:
<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="Úte %-5level %logger ${COMPUTERNAME} %property{UserHostAddress} [%property{SessionID}] - %message%newline"/>
</layout>
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
Belirtildiği gibi, bu makinelerde zaman zaman görüyoruz, ama sorun olunca da devam etmektedir.
CEVAP
Eklemeyi deneyin
<lockingModel type="log4net.Appender.FileAppender MinimalLock" />
<appender />
eleman. Orada bazı performans etkisi nedeniyle bu demektir log4net olacak kilit dosyası, yazmak için, ve kilidini açmak için her yazma işlemi (karşıt olarak varsayılan davranış, hangi edinir ve tutar üzerine kilitlemek için uzun bir süre).
Bir ima varsayılan davranış olduğu kullanıyorsanız bunun altında bir Web sitesi olması idam altında birden fazla işçi çalışan süreçleri üzerinde aynı makine, her biri-ecek denemek ve elde tutmak üzerine kilit süresiz ve iki tanesi de sadece kaybedecek. En az kilitlemek için kilitleme modelini değiştirerek bu sorunu geçici olarak çalışır.
Hata ayıklama (zaman, yeni işçi süreçler ve iplik kaba bir yol sonlandırmaları çok tam olarak gerçekleşmesi muhtemel olan şeyler yapılıyor.)
Ä°yi ÅŸanslar!
Yapılandırmak birden fazla dosya yazma...
Log4Net: Dosya appender Çalışırken, uz...
harici dosya log4Net config çalışmıyor...
C# kullanarak nasıl tek bir dosya kili...
Log4net rolling günlük dosya adı ile d...