2010-01-06 18 views
12

Log4net'i yapılandırmanın akıcı bir yolu var mı (ekleyiciler ve eklerin tüm özellikleri vb.) Olup olmadığını herkes bilir.Akıcı log4net yapılandırması

xml beni delirtiyor.

Ya da değilse, hiç kimse düzgün bir şekilde yapılandırılabilir ve log4net'e benzer özellikler sunabilen iyi bir .Net kayıt çerçevesi biliyor mu?

+0

için NLog taşındı? – Paolo

+3

+1 xml, entegrasyon testlerinde üstesinden gelmek için gerçekten can sıkıcıdır. Dosyalar sürekli olarak çeşitli proje katmanlarından sürekli olarak geçer. –

cevap

7

'da bir grafik arabirim aracılığıyla düzenleme yapabilirsiniz Harika alkışlar bir göz atacağım. Ben de log4net'te aradığım şeyi buldum.

Rahatsız edici bir şekilde sadece bir xml dosyasına dize gibi görünen Castle Logging Facility'i kullanmaya başladık! Dolayısıyla, tüm bunları DSL üzerinden yapıp, xml yapılandırmalarımızı bir ön oluşturma adımı olarak oluşturmayı düşünebiliriz.

private static void ConfigureLog() 
    { 
     var root = ((Hierarchy)LogManager.GetRepository()).Root; 
     root.AddAppender(GetConsoleAppender()); 
     root.AddAppender(GetFileAppender(@"d:\dev\huddle\log\Huddle.Sync", "standard.log", Level.Debug)); 
     root.AddAppender(GetFileAppender(@"d:\dev\huddle\log\Huddle.Sync", "error.log", Level.Warn)); 
     root.Repository.Configured = true; 
    } 

    private static FileAppender GetFileAppender(string directory, string fileName, Level threshold) 
    { 
     var appender = new FileAppender 
     { 
      Name = "File", 
      AppendToFile = true, 
      File = directory + "\\" + fileName, 
      Layout = new PatternLayout(_pattern), 
      Threshold = threshold 
     }; 

     appender.ActivateOptions(); 
     return appender; 
    } 

    private static ConsoleAppender GetConsoleAppender() 
    { 
     var appender = new ConsoleAppender 
     { 
      Name = "Console", 
      Layout = new PatternLayout(_pattern), 
      Threshold = Level.Debug 
     }; 

     appender.ActivateOptions(); 
     return appender; 
    } 
1

Microsoft'un Enterprise kitaplığındaki bağımlılığı dikkate almazsanız, Logging Application Block'u kullanabilirsiniz. Yapılandırma hala XML'de, ancak doğrudan Visual Studio,

1

XML tabanlı log4net yapılandırmasıyla ilgili acınızı hissediyorum. Bir süre önce hata ayıklama ile yeterince sinirlendim ve log4net için kendi akıcı API'mı bir araya getirmeye başladım. Github üzerinde fluent-log4net göz atın. Henüz her şey% 100 destekli değil, ama oraya varıyor.

Bir bakışta konfigürasyonu bir bakışta test etmeyi çok daha kolay hale getiriyor, derim.

+0

Herhangi biri Fluent-log4net'te (bu cevaptan) bir eğitici var mı? GitHub'daki eğitim gerçekten hiç log4net'i çok fazla kullanmayan birini sağlamaz. – Phil

1

O zamandan beri config bit Eğer sorun yaşıyorsanız bu sebeple