C#:关于Nlog的设置和使用

C#: Regarding Nlog settings and usage

我很好奇使用nlog。我以前没有用过它。所以我现在喜欢在我的项目中使用它。我有个问题。

<rules>
    <logger name="SomeNamespace.Component.*" minlevel="Trace" writeTo="logfile" final="true" />
    <logger name="*" minlevel="Info" writeTo="logfile" />
</rules>

这里 SomeNamespace.Component.* 是什么意思?通过示例代码向我展示此类规则的用法

什么是minlevel="Info"?这里的 minlevel 是什么意思? 可以为 minlevel 设置什么其他选项?

谢谢

what does mean here SomeNamespace.Component.* ?

这意味着该规则将匹配任何名称以SomeNamespace.Component.开头的记录器。通常记录器的名称等于您在其中创建记录器的 class 的名称(但您也可以提供自定义记录器名称):

private static readonly Logger Logger = LogManager.GetCurrentClassLogger();

所以上面的规则配置将匹配以下记录器名称:

SomeNamespace.Component.MyClass
SomeNamespace.Component.Cool.Other.Namespace.YourClass
// etc

即在 SomeNamespace.Component. 命名空间的 class 中创建的任何记录器都将匹配规则。无论您那里有多少 classes 与记录器。

what is minlevel="Info" ?

这是将由记录器记录的最低级别的日志消息。

Logger.Debug("This will not be logged");
Logger.Info("This will be logged");

NLog 支持以下日志级别(您可以使用其中任何一个来控制将记录哪些消息):

  1. 追踪
  2. 调试
  3. 信息
  4. 警告
  5. 错误
  6. 致命

NLog wiki 查看每个级别的描述。通常你应该使用 min level Info 这将记录任何错误消息和一些 high-level 系统正在做什么的详细信息。出于调试目的,您可以 turn-on TraceDebug 级别,但是您的日志文件会很快变得很大。当您写入大量日志消息时,性能也会受到影响。