Serilog ExpressionTemplate 重命名日志级别并应用格式
Serilog ExpressionTemplate rename log level and apply formatting
我正在尝试使用 serilog 的 ExpressionTemplate
并按以下方式写入日志级别:
{ "level": "INF", ... }
我知道如何为 @l
设置别名 - level: @l
我知道如何将关卡格式化为三个大写字母 - @l:u3
但我无法将两者结合起来
我尝试了以下方法但没有成功(尝试格式化模板时出现异常失败):
level: @l:u3
{'level': @l:u3}
在撰写本文时,这是 a limitation in Serilog.Expressions,希望能尽快解决。
Update: version 3.4.0-dev-* now on NuGet supports ToString(@l, 'u3')
.
您可以使用条件来解决它:
{'level': if @l = 'Information' then 'INF' else if @l = 'Warning' then 'WRN' else 'ERR'}
剩余关卡还有几个分支。
(或者,您可以按照 ToShortLevel(@l)
的方式编写并插入 user defined function,然后改用它。)
我正在尝试使用 serilog 的 ExpressionTemplate
并按以下方式写入日志级别:
{ "level": "INF", ... }
我知道如何为 @l
设置别名 - level: @l
我知道如何将关卡格式化为三个大写字母 - @l:u3
但我无法将两者结合起来
我尝试了以下方法但没有成功(尝试格式化模板时出现异常失败):
level: @l:u3
{'level': @l:u3}
在撰写本文时,这是 a limitation in Serilog.Expressions,希望能尽快解决。
Update: version 3.4.0-dev-* now on NuGet supports
ToString(@l, 'u3')
.
您可以使用条件来解决它:
{'level': if @l = 'Information' then 'INF' else if @l = 'Warning' then 'WRN' else 'ERR'}
剩余关卡还有几个分支。
(或者,您可以按照 ToShortLevel(@l)
的方式编写并插入 user defined function,然后改用它。)