我真的很喜欢 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;
最佳答案
您是否考虑过在 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
关于.net - 是否有支持简单编程配置的 .Net 日志记录框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6421850/