.net - 是否有支持简单编程配置的 .Net 日志记录框架?

标签 .net logging

我真的很喜欢 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/

相关文章:

javascript - 如何在 Visual Studio 2010 中对文件系统更改运行命令?

c# - 如何读取流的所有字节但最后 8 个字节

c# - 使用 global::keyword 的现有编码方法的性能问题

java - 应用程序引擎的 gwt-log 问题

c# - 如何获取最后插入的记录

Django 使用用户/IP 进行日志记录

c# - 使用隐式 SSL for .NET 发送 SMTP 电子邮件的库

c# - 使用 CaSTLe ActiveRecord,当两个类具有相同名称但命名空间不同时,我得到一个 NHibernate DuplicateMappingException

.net - 如何将 .NET 登录到 QRADAR

c++ - 是否可以在异常(段错误)错误后自动重启 GDB 中的程序?