通过多个日志级别调试期间的额外日志

时间:2017-12-08 18:17:14

标签: debugging logging nlog

使用NLog我知道我可以更改Nlog.config中的minLevel,这样我就可以排除某些日志消息。我认为当软件在生产中运行时,这通常很好。如果出现问题,我可以切换minLevel并查看更多细节。这是有道理的。

我遇到的问题是在调试“调试”级别时,老实说看起来有点不合适。这主要是因为“调试”似乎是开发人员可能关心的所有内容,而不是其他人。

对于做了很多事情的后端系统,我看到这会在几秒钟内填满一个25 MB的日志文件。对此进行排序并尝试将各个部分组合在一起有点困难。

是否可以有多个级别的“Debug”,以便我可以更容易地限制实际使用日志文件的信息量?

1 个答案:

答案 0 :(得分:1)

不确定这是否能解决您的问题,

但在NLog中使用以下模式很常见:

  • 为每个班级或流程使用不同的记录器(使用LogManager.GetCurrentClassLogger()LogManager.GetLogger("loggernameForFlow1")
  • 始终将所有日志消息写入记录器(例如logger.Trace(...)logger.Debug(...)
  • 按级别过滤日志,但也按记录器名称过滤日志。因为LogManager.GetCurrentClassLogger()创建了一个带有命名空间的当前类名的记录器,所以您可以轻松地按类过滤。例如

    过滤命名空间:

     
     <logger name="myNamespace.*" minLevel=...  writeTo=... />
    

    过滤1级

     
     <logger name="myNamespace.MyClass.*" minLevel=...  writeTo=... />