【问题标题】:How to log specific data and properties in nlog in .net core如何在.net core的nlog中记录特定数据和属性
【发布时间】:2017-01-31 07:25:02
【问题描述】:

我正在使用NLog 在 .net 核心中记录消息。

以下是为我完成日志记录工作的方法。 它也能够记录属性。 只有当我调用此方法时,它才会写入文件。

    private static void WriteLog(LogEvent logEvent)
    {
        var log = LogManager.GetLogger(logEvent.Logger);

        LogEventInfo logMsg = new LogEventInfo();
        logMsg.Message = logEvent.Message;
        logMsg.Level = logEvent.LogLevel;
        logMsg.Properties.Add("Title", logEvent.Title);
        logMsg.Properties.Add("Name", "abc");
        if (!string.IsNullOrEmpty(logEvent.StackTrace))
        {
            logMsg.Properties.Add("StackTrace", "Stack Trace: " + logEvent.StackTrace + Environment.NewLine);
        }
        if (!string.IsNullOrEmpty(logEvent.InnerException))
        {
            logMsg.Properties.Add("InnerException", "Inner Exception: " + logEvent.InnerException + Environment.NewLine);
        }
        log.Log(logMsg);
    }

它没有记录如下消息:

"Executing ObjectResult, writing value Microsoft.AspNetCore.Mvc.ControllerContext."

"Request starting HTTP/1.1 GET http://localhost:5000/api/"

我想通过将 NLog 添加到 .net 核心来实现类似的功能。 我在 StartUp.cs 中添加了 NLog 如下:

loggerFactory.AddNLog();

但是通过上面提到的方式添加 NLog,它会记录所有与动作执行相关的消息。但我不想要这些消息。

我希望 NLog 使用 LogInformation() 来记录消息。以及如何在此处传递'StackTrace''InnerException' 等属性。

_logger.LogInformation("Home controller and Index action - logged");

【问题讨论】:

    标签: c# asp.net-core .net-core nlog asp.net-core-webapi


    【解决方案1】:

    要限制自动记录的内容,您可能需要查看您在 nlog.config 和 Startup.cs 中设置的日志记录级别。例如,这只会自动记录“信息”或更高级别(警告、错误和致命)的消息,而不是跟踪或调试。它还将仅记录命名空间“MyNamespace”中的类的消息。

    <rules>
        <!-- Level can be: Trace, Debug, Info, Warn, Error, Fatal  -->
        <logger name="MyNamespace.*" minlevel="Info" writeTo="DBLogger" final="true" />
    </rules>
    

    要保存异常和堆栈跟踪,您应该改用_logger.Log() 方法:

    try { ... }
    catch(Exception ex) {
       _logger.Log(LogLevel.Error, "Message", ex);
    }
    

    堆栈跟踪将可用于记录异常。

    这是您保存的how to parameterize the log messages 的一些附加信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-30
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多