5

我的问题源于这个问题,其中一条评论表明 DEBUG 日志级别比 TRACE 更细。看看 TRACE 和 DEBUG 在 .NET 中的含义,这似乎是有道理的,因为根据定义,DEBUG(作为一个概念)在生产中从未见过。这可能就是为什么它们在企业库中不用作事件类型的原因。另一方面,我所知道的所有其他实现(log4net、nlog、common.logging)都将 TRACE 作为比 DEBUG 更精细的级别。也就是说,在 DEBUG 日志级别运行的应用程序不会写入 TRACE 日志。

我们需要实现自己的日志框架,我想知道是否有更多的人认为 DEBUG 真的应该是最“垃圾”的日志级别?或者,如果我们的新框架应该为新开发人员提供一些易于使用的熟悉性等,您会认为这是一个错误吗?

谢谢。

4

2 回答 2

4

我同意 TRACE 比 DEBUG 更好。

示例:如果我使用 PostSharp 向应用程序中的每个方法调用添加自动日志记录语句,我希望在每个方法的开头注入此代码:

if (Log.IsTraceEnabled)
   Log.TraceFromat("Method {0} args {1}", method, string.Join(",", args));

也就是说,我将“TRACE”级别解释为帮助我跟踪应用程序中的调用,而 DEBUG 正在编写帮助开发人员调试程序行为的信息。不知道有没有道理?

于 2012-06-25T08:52:37.420 回答
4

请记住,log4net 来自 Java 世界,而 NLog 的许多想法都来自 log4net - 因此,对于这些框架,Trace 和 Debug 会有所不同,因为它们不是基于 .NET 框架设计者的日志世界观。 System.Diagnostics 命名空间。

我建议 .NET 中的 Trace 与 .NET 世界中的 Debug 是同义词,因为您启用了跟踪(通过 TRACE 编译器指令或在 web.config 中)以显示 Debug 信息。

显然,在 NLog 和 Log4Net 中,信息的严重性可能被解释为略有不同,但两者最终都将用于跟踪错误,而不是系统错误,因此它们具有基本相同的含义。

于 2012-06-25T09:11:06.487 回答