任何人都知道是否有一种流畅的方式来配置 log4net(附加程序和附加程序的所有属性等......)。
xml 让我发疯。
或者,如果没有,是否有人知道一个体面的 .Net 日志框架,可以轻松配置并提供与 log4net 类似的功能?
任何人都知道是否有一种流畅的方式来配置 log4net(附加程序和附加程序的所有属性等......)。
xml 让我发疯。
或者,如果没有,是否有人知道一个体面的 .Net 日志框架,可以轻松配置并提供与 log4net 类似的功能?
很酷的欢呼我会看看。在 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;
}
如果您不介意对 Microsoft 企业库的依赖,您可以使用Logging Application Block。配置仍然是 XML,但您可以直接在 Visual Studio 中通过图形界面进行编辑,
我对基于 XML 的 log4net 配置感到痛苦。前段时间我对调试它感到非常沮丧,以至于我开始为 log4net 组合我自己的流利的 API。在 github 上查看fluent-log4net 。并非所有内容都得到 100% 支持,但它已经实现了。
我会说,它确实使一目了然地测试配置变得容易得多。
出于这个原因,我后来搬到了NLog