我非常喜欢log4net,这是我的首选日志框架。我对此框架的唯一问题是它最好配置XML文件。这意味着您需要在开始应用程序之前了解所有日志记录要求。
我们的应用程序创建了许多与外部主机的连接。我们想为每个记录器创建一个记录器,记录到一个单独的文件。因此,如果我们有3个连接,A,B和C,我们希望看到logA.txt,logB.txt和logC.txt。问题是我们建立的连接数是完全动态的,只能在运行时知道。我们为文件选择的名称在数据库中配置以及它们的详细程度。
我对项目的其他任何领域的log4net感到满意。它只是能够为每个单独的连接动态创建记录器。我之前问了类似的东西,但是如何做到log4net。解决方案有点乱,我不确定它将如何与项目设置的其余日志记录一起使用。
是否有另一个更容易以编程方式配置的日志框架。 我想的是像下面这样的东西(例如)。
ILog log = new Log();
log.FileName = "foobar.txt"
log.Level = LogLevel.Debug;
答案 0 :(得分:3)
您是否考虑过在TraceSource中构建?
TraceSource source1 = new TraceSource("TraceSourceName");
source1.Listeners.Clear();
source1.Listeners.Add(new TextWriterTraceListener(fileName));
source1.Switch.Level = SourceLevels.Warning;
(另请不要忘记在app.config中将Trace.AutoFlush设置为true。)
希望你觉得这很有用 -zs