2011-06-20 19 views
7

log4net kullanarak herhangi bir bilgi, hata, hata ayıklaması yapamıyorum, herşeyi ağ hizmetine izin verdim, herkes dizinlere asp.net temp klasörünü verdi , günlük klasörü, hatta c: \,Log4net yazamıyor, sadece boş dosyalar oluşturuyor ancak gerçek günlükleri yazmıyor

Sadece boş bir dosya oluştur. fakat log yazmayın

konuyu

Thx ne olabilir Raj

+4

Eğer log4net dosyaları oluşturabilirse, muhtemelen bir izin sorunu değildir. Test ettiğiniz günlük seviyesi için oturum açmanın etkin olduğundan emin misiniz? Lütfen bize sahip olduğunuz log4net yapılandırmasını gösterin. – driis

+0

Burada driis katılıyorum. Bize log4net yapılandırmanızı verirseniz, neyin olmadığını ve öneri havuzumuzu daralttığını söyleyebiliriz. –

cevap

9

Benim tahminim sizin yapılandırma dosyasında, bir düzen deseni belirtmedi olurdu.

<layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> 
</layout> 

günlüğüne ne yazacağımı belirtir: Normalde, size appender içine şuna benzer bir şey var. Eğer buna sahip değilsen, bir şey yazacağından şüpheliyim.

Dosya oluşturulduğu için bunun büyük olasılıkla bir izin sorunu olmadığını belirten yorumlarda yer alanlarla aynı fikirdeyim. Bunun doğru olduğunu test etmek için, konsolunuza çıkış yapan yapılandırmanıza bir ekleyici ekleyebilirsiniz. Ardından, uygulamanızı hata ayıkladığınızda çıktıyı izleyebilirsiniz. Bu da işe yaramıyorsa, sorunun bir izin sorunu olmadığını biliyorsunuz.

Verebileceğim en iyi öneri, yapılandırma dosyanızı bir çalışma ile karşılaştırmak olabilir. Her bölümün çalışma konfigürasyonunda bir karşılığı olduğundan emin olun veya neden bir tane bulunmasının gerekmediğini biliyorsunuz. Burada config her bölümündeki açıklamalar içeren log4net üzerinde yazdığı bir makalede olup, bunları yazmayı gösterir: Tüm bu yardımcı olmazsa

http://www.codeproject.com/KB/dotnet/Log4net_Tutorial.aspx

, sizin yapılandırma dosyası metnini gönderin Sorunuzu bu yüzden inceleyebiliriz.

2

Bu sorunun olası bir nedeni, Kayıt Seviyesi olabilir. Günlük düzeyi ÖLÜMCÜL ayarlı ve bu ise durum web.config bu bölümünü değiştirerek deneyin kontrol edin:

<log4net> 
    ...... 
    <root> 
     <level value="DEBUG" /> 
      <appender-ref ref="RollingFileAppender" /> 
     </root> 
    .... 
</log4net> 

Furthemore kontrol etmeyi unutmayın: bununla

<log4net> 
     ..... 
     <root> 
       <level value="FATAL" /> 
       <appender-ref ref="RollingFileAppender" /> 
      </root> 
     ..... 
    </log4net> 

web.config bölümü, bazı

alt bölümünün olası oluşumları.

log.Debug("test: Db quering..."); 
: Örneğin yazarsanız

log.Debug("Db quering..."); 

her zaman boş dönmek fakat olacaktır: somethig gibi kod koymak bu günlük düzeyini DEBUG olarak ayarlanmış olsa bile durum (örneğin) ve size yılında

filtre bölümleri yorum yapmak nedenle deneyin ve bu nokta nihayet ne çalışan almalısınız

<filter type="log4net.Filter.DenyAllFilter" /> 

de bu hat !!

Bu yardımcı olur umarım