Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 日志级别:您认为调试比跟踪更精细吗?_C#_Logging_Log4net_Nlog_Common.logging - Fatal编程技术网

C# 日志级别:您认为调试比跟踪更精细吗?

C# 日志级别:您认为调试比跟踪更精细吗?,c#,logging,log4net,nlog,common.logging,C#,Logging,Log4net,Nlog,Common.logging,我的问题源于问题,其中一条注释表明调试日志级别比跟踪日志级别更细粒度。看看跟踪和调试在.NET中的含义,这似乎是有意义的,因为根据定义,调试(作为一个概念)在生产中从未出现过。这可能就是为什么它们没有在企业库中用作事件类型的原因。另一方面,我所知道的所有其他实现(log4net、nlog、common.logging)的跟踪级别都比调试级别更高。也就是说,在调试日志级别运行的应用程序不会写入跟踪日志 我们需要实现自己的日志框架,我想知道是否有更多的人认为调试真的应该是最“垃圾”的日志级别?或者,

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

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


谢谢。

我同意跟踪比调试更好

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

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

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

请记住,log4net来自Java世界,而NLog的许多想法都来自log4net-因此,这些框架的跟踪和调试将有所不同,因为它们不基于System.Diagnostics命名空间中.NET framework designer的日志世界视图

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


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

因此,如果要实现自己的日志框架,您只有一个级别(如Entlib中的Verbose)“沃纳:是的,当然!信息、错误、警告与.NET一样。基于java的额外级别对于业务或安全关键的高事务处理系统来说是有意义的,但是对于大多数人的需求来说是过分的。事实上,这里的大多数开发人员都是这样看待这个世界的。但这可能是巧合,我们不想想出10个开发者中有8个会误解的东西:)