Serilog Ilogger自定义属性



我发现了两种不同的方法来添加自定义属性到我的Serilog日志消息。

  1. 通用Microsoft Ilogger "开始范围">

    using (_logger.BeginScope(new Dictionary<string, object>() { { "MyVar", var } }))
    {
    _logger.LogInformation($"MyVar: {var} - My logging message...");
    }
    
  2. 系列日志"日志上下文">

    using (LogContext.PushProperty("MyVar", var))
    {
    _logger.LogInformation($"MyVar: {var} - My logging message...");
    }
    

工作。然而,现在我的1行日志记录消息已经增加到多行,由于这个使用语句包装,它将在我的代码中无处不在!

如何将日志信息降回1行?

我写一个单独的日志类,实例化里面的日志记录器吗?否则,我将通过依赖注入将日志记录器传递给它?

我应该为ILogger写一个IDisposable适配器类吗?

我可以使用ILoggerFactory吗?

感谢任何帮助:)

我正在使用。net 6.0

  1. 我认为使用作用域将数据添加到单个日志中并没有多少利润,只需记录它,让结构化日志处理其余的。

  2. 如果作用域允许,您可以切换到using声明,因此您将以2行结束:

    using var logCtx = LogContext.Push(...); // or _logger.BeginScope
    _logger.LogInformation(...);
    

相关内容

  • 没有找到相关文章

最新更新