Ben same issue as HENRI COOK did üzerinde duruyorum. Kısa açıklamadan anlayabildiğimiz kadarıyla bug on Apache Jira olarak bildirilmiştir.Log4Net RollingFileAppender düşük hacimli kütük ile IO arabellek yıkama değil
Asıl sorunum, olayların yalnızca uygulama kapatıldığında (etkinlikten haftalar sonra bile) günlüğe kaydedilir olmasıdır. Bu, günlük kaydı çok düşük olduğunda olur. Bunu bir Windows Server 2008 R2'de görüyorum. Bu, üretim hatalarına yakalanma ve tepki vermemizi engeller.
Şimdi ekleyici bir arabellek değil. Varsayılan olarak, her seferinde bir mesaj eklendiğinde, temel alınan akışta Flush() öğesini çağırır.
Sorumu NEDEN FAZLA DEĞİLDİR? Ve programatically flushing all appenders dışında herhangi bir çare var mı? Bir pulsing appender uygun bir geçici çözümü düşünür müsün?
appender yapılandırma: Ben herhangi bir kod ile davranışı yeniden mümkün olmamıştır 2013-06-19
<appender name="RollingErrorFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="D:\LogFiles\zzzz\xxxxxx__ERROR" />
<param name="AppendToFile" value="true" />
<param name="DatePattern" value="_yyyyMMddHH".log"" />
<param name="RollingStyle" value="Date" />
<param name="StaticLogFileName" value="false" />
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="FATAL" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%utcdate{yyyy-MM-dd HH:mm:ss.fff},[%thread],%level,%logger,%m%n"/>
</layout>
</appender>
GÜNCELLEME. Ne kadar kötü çalışsam da, veri her zaman diske derhal yazılır. Ancak, önemli bir gözlem yapıldı: Bir dosyaya ilk yazma 1KiB'den büyükse, değiştirilen zaman, sonraki yazımlarla hiçbir zaman güncellenmez. Sadece dosya kapanma zamanı ile kapatıldığında güncellenecektir. Öte yandan, ilk yazma kısa bir tek katlıysa, sonraki herhangi bir yazma işlemi değiştirilen zamanı güncelleyecektir. Bu davranış, log4net ve manuel IO işlemi arasında, 32bit WinXP ve 64bit W2k8R2 arasında, .NET 2.0, 3.5 ve .NET 4.0 arasında tutarlıdır. Bu hala sorunu çözmez, ama en azından şimdi tuhaf değişiklik zaman modelini anlayabilirim. Hata düzeyinde ya da daha kötüsü günlük olayları ile ilgilenmekteyiz ve bu trafik Neyse seyrek olduğundan
Teşekkür Rob
kullandığınız appender için yapılandırma gönderebilir miyim:
logTest.config ana prog tarafından başvurulan? –
@AdamS, config eklendi, teşekkürler – Rbjz
Ve açıklığa kavuşturmak için, bu süre boyunca en az bir HATA düzeyi veya daha yüksek bir kayıt olayı olduğunda, günlüklerin her saatte yuvarlanmadığını görmüyor musunuz?Uygulayıcınızla test ettim ve testere kütükleri düzgün bir şekilde sıyrılıp yuvarlandı. –