任何人都知道是否有一种流畅的方式来配置log4net(appender和appender等所有属性......)。
xml让我发疯。
如果没有,有没有人知道一个体面的.Net日志框架,它可以很容易地配置,并提供与log4net类似的功能?
答案 0 :(得分: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 :(得分:1)
如果您不介意依赖Microsoft的Enterprise库,可以使用Logging Application Block。配置仍为XML格式,但您可以直接在Visual Studio中通过图形界面进行编辑,
答案 2 :(得分:1)
我对使用基于XML的log4net配置感到痛苦。很久以前,我对调试它感到很沮丧,因为我开始为log4net编写自己的流畅API。在github上查看fluent-log4net。并非一切都是100%支持,但它已经到了那里。
我会说,它确实使测试配置一目了然更容易。
答案 3 :(得分:1)
由于这个原因,我已经搬到了NLog