【发布时间】:2019-07-30 10:42:21
【问题描述】:
我正在尝试在我的 .Net Core API 中使用 Serilog 通过Serilog-Sinks-MSSqlServer 接收器登录到 SQL Server。如果您将StoreAsEnum 属性设置为true,则标准Level 列要么写出完整值(例如信息、警告、错误),要么写出TinyInt 枚举值,如here 所示。我似乎找不到一种简单的方法(例如在 Log4net 和 NLog 中)来格式化输出以仅写入级别的第一个字符(例如 I、W、E)。我尝试将 DataLength 属性设置为 1,但这会导致根本不写入日志条目。
我已经能够使用自定义扩充器完成我想要的行为,该扩充器从标准列中获取 Level 值,然后仅使用第一个字符写入自定义列,同时删除标准 Level 列,但是当我觉得某处可能存在我从未见过的格式化机制时,这似乎有点矫枉过正。
【问题讨论】:
标签: asp.net-core-webapi serilog