相关疑难解决方法(0)

C# Serilog:如何使用字符串插值进行记录并将参数名称保留在消息模板中?

如何替换此代码:

string name = "John";
logger.Information("length of name '{name}' is {nameLength}", name, name.Length);
Run Code Online (Sandbox Code Playgroud)

像这样或类似的 C# 字符串插值

string name = "John";
// :-( lost benefit of structured logging: property names not passed to logger
logger.Information($"length of name '{name}' is {name.Length}");
Run Code Online (Sandbox Code Playgroud)

但保持结构化日志的属性名称工作?

好处是:

  1. 提高可读性
  2. 您永远不会忘记参数列表中的参数或消息模板中的属性名称,尤其是当您更改日志记录代码时
  3. 您始终知道此属性名称将打印到您的日志中

c# logging string-interpolation serilog formattablestring

6
推荐指数
1
解决办法
2628
查看次数