我想记录以下消息:
_logger.LogDebug("Finished: DB retrieved OutboundData settings.", new { ElapsedTime = stopwatch.Elapsed });
- 这是使用 Microsoft.Extensions.Logging.ILogger 接口(interface)
- 注意到字符串消息中没有变量怎么办?这是设计使然。
- 注意到我是如何添加一些额外的元的吗?这将被添加到日志消息的键/值内容中。
例如
看看这条消息如何有 4x 额外的键/值元数据?棒极了。我希望向这个单一的日志记录方法添加第五个(“ElapsedTime”/实际值)。
这可能吗?
旁注:
- 我使用 Serilog 作为最终的日志库
- 除了宿主项目之外,Serilog 不是我的任何项目。因此,请不要建议任何 Serilog 特定方法。那是行不通的。
最佳答案
您需要创建一个scope将所有元数据添加到。例如:
using var scope = _logger.BeginScope(new Dictionary<string, object>() { ["ElapsedTime"] = stopwatch.Elapsed });
_logger.LogDebug("Finished: DB retrieved OutboundData settings.");
关于c# - 向 Microsoft "ILogger"LogDebug 消息添加额外的元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77184337/