【问题标题】:Extra logging during debugging though multiple log levels通过多个日志级别进行调试期间的额外日志记录
【发布时间】:2017-12-08 18:17:13
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: debugging logging nlog


    【解决方案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=... />
      

    【讨论】:

      猜你喜欢
      • 2018-01-17
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-26
      • 2023-03-23
      • 2017-01-03
      相关资源
      最近更新 更多