Serilog自定义日志级别名称

时间:2019-11-19 10:36:24

标签: c# .net serilog

我知道在使用serilog登录时,可以保留其日志全名(VerboseDebugInformationWarning等) ,或通过执行类似于{Level:u3}的操作将其截断为大写或小写形式-但是如何完全更改级别名称?

例如,我可能希望级别名称使用其他语言来匹配我的应用程序的其余部分。

或者,在我的特定情况下,我发现级别“全名”太大,但是拥有所有具有特定长度的级别名称使得在快速滚动日志时更难识别不同级别的消息

所以我想拥有:

  • VERBOSE
  • DBG
  • INFO
  • WARNING
  • *EXCEPTION*
  • **FATAL**

但是我不确定如何实现这一目标。在serilog中如何实现?

2 个答案:

答案 0 :(得分:1)

您可以将自定义格式化程序与Serilog一起使用,并在其中编写所需级别的消息。

https://github.com/serilog/serilog/wiki/Formatting-Output

ITextFormatter可能更适合您的需求:
https://stackify.com/serilog-tutorial-net-logging/

答案 1 :(得分:1)

您创建了一个Enricher以将级别映射到所需的字符串,然后引用它在outputTemplate

中添加的字段

但是,最好使用:u3或其他稳定长度的渲染(或执行类似{LogLevel,10:u}的操作以使列固定宽度)