将最低级别记录到日志文件

时间:2018-08-03 18:42:55

标签: c# nlog

这似乎是一件容易的事,而且是一个普遍的愿望,但是我很好奇这样做的好方法。我想在启动时将特定记录器的最小级别写入其日志文件。我通常查看日志,并试图记住我如何离开该应用程序的日志级别,而不必挖掘NLog.config文件。我想要一个看起来像这样的日志条目:

  

2018-08-03 09:38:23.7975 |信息|从日志级别设置为:   调试

我看到我应该能够像这样访问LoggingConfiguration:

NLog.LogManager.Configuration

但是我该如何访问规则和最低级别?还有其他建议吗?如果您除了the NLog Tutorial以外还能提出一些好的NLog资源,我将不胜感激。

2 个答案:

答案 0 :(得分:2)

谢谢您的评论和回答。 Severius5,您的答案(已删除?)给了我答案。这段代码可以满足我的需求:

        var rules = NLog.LogManager.Configuration.LoggingRules;
        var rule = rules.FirstOrDefault(x => x.LoggerNamePattern == "hostLogger");
        NLog.LogManager.GetLogger("hostLogger").Info("Minimum Log Level: {0}", rule.Levels.Min());

它在日志中给了我这个输出:

  

2018-08-03 14:26:11.7439 |信息|最低日志级别:调试

答案 1 :(得分:2)

也许是这样的:

var logger = NLog.LogManager.GetLogger("hostLogger");
var minLogLevel = "Disabled";
if (logger.IsTraceEnabled)
    minLogLevel = "Trace";
else if (logger.IsDebugEnabled)
    minLogLevel = "Debug";
else if (logger.IsInfoEnabled)
    minLogLevel = "Info";
else if (logger.IsWarnEnabled)
    minLogLevel = "Warn";
else if (logger.IsErrorEnabled)
    minLogLevel = "Error";
else if (logger.IsFatalEnabled)
    minLogLevel = "Fatal";
logger.Info("Minimum Log Level: {0}", minLogLevel)