2010-01-06 64 views
12

任何人都知道是否有流暢的配置log4net的方式(appenders和appenders的所有屬性等)。流利的log4net配置

xml讓我瘋狂。

如果沒有,有誰知道一個體面的.Net日誌框架,可以很容易地配置流暢,並提供類似的功能log4net?

+0

? – Paolo 2010-01-06 13:30:35

+3

+1 xml真的很煩人,可以在集成測試中處理。文件從不同的項目層次不斷超越對方。 – 2010-06-24 19:48:25

回答

7

酷炫的歡呼讓我來看看。在log4net中也找到了我想要的東西。令人討厭的是,我們已經開始使用Castle Logging Facility,它似乎只是將一個字符串轉換爲xml文件!所以可能需要考慮通過DSL來完成,並將我們的XML配置生成爲預構建步驟。

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的企業庫,則可以使用Logging Application Block。配置仍然使用XML,但您可以直接在Visual Studio中通過圖形界面進行編輯,

1

我對基於XML的log4net配置感到很痛苦。前段時間我調試它讓我感到沮喪,因爲我開始將自己的流暢API用於log4net。在github上查看fluent-log4net。並非所有事情都得到100%的支持,但它已經到了。

我會說,它確實使測試更容易查看配置。

+0

有沒有人有關於Fluent-log4net的教程(來自這個答案)。 GitHub中的教程確實沒有提供從未使用log4net很多幫助的人。 – Phil 2012-02-19 17:33:25

1

因爲我已經搬到NLog爲配置位被你遇到的麻煩哪位這個原因