向 Microsoft“ILogger”LogDebug 消息添加额外的元数据?

问题描述 投票:0回答:1

我想记录以下消息:

_logger.LogDebug("Finished: DB retrieved OutboundData settings.", new { ElapsedTime = stopwatch.Elapsed });
  • 这是使用 Microsoft.Extensions.Logging.ILogger 接口
  • 注意到字符串消息中怎么没有变量?这是设计使然。
  • 注意到我如何添加一些额外的元了吗?这将被添加到日志消息的键/值内容中。

例如

看看这条消息如何有 4x 额外的键/值元数据?棒极了。我希望向这个单一的日志记录方法添加第五个(“ElapsedTime”/实际值)。

这可能吗?

旁注:

  • 我使用 Serilog 作为最终的日志库
  • Serilog 不是我的任何项目,除了宿主项目。因此,请不要建议任何 Serilog 特定方法。那是行不通的。
c# logging serilog microsoft.extensions.logging
1个回答
0
投票

您需要创建一个范围来添加所有元数据。例如:

using var scope = _logger.BeginScope(new Dictionary<string, object>() { ["ElapsedTime"] = stopwatch.Elapsed });
_logger.LogDebug("Finished: DB retrieved OutboundData settings.");
© www.soinside.com 2019 - 2024. All rights reserved.