use*_*804 14 format whitespace nlog
我正在使用NLog进行日志记录.目前我的Layout-String是:
"${date:format=dd.MM.yyyy HH\\:mm\\:ss,fff} | ${level:uppercase=true} | ${message}"
Run Code Online (Sandbox Code Playgroud)
这会产生以下日志:
18.12.2013 11:23:14,834 | INFO | this is an info
18.12.2013 11:23:14,835 | TRACE | this is a trace
Run Code Online (Sandbox Code Playgroud)
我现在想要的是格式化"$ level"以填充Whitespaces,使其看起来像一个包含5个字符的表.
我想拥有:
18.12.2013 11:23:14,834 | INFO | this is an info
18.12.2013 11:23:14,835 | TRACE | this is a trace
Run Code Online (Sandbox Code Playgroud)
我没有发现任何遗憾......任何人都可以帮忙吗?
wag*_*ghe 18
尝试使用PaddingLayoutRendererWrapper.我不确定一个好的配置示例在哪里,但是NLog源代码库中的源代码位于此处,因此您可以对正确的配置进行反向工程:
我想你会做这样的事情:
"${date:format=dd.MM.yyyy HH\\:mm\\:ss,fff} | ${padding:padding=5,fixedlength=true:${level:uppercase=true}} | ${message}"
Run Code Online (Sandbox Code Playgroud)
希望该示例将填充左侧5个空格的所有日志级别值,然后修剪为绝对长度5.
padding=5表示向左添加5个填充字符(默认为' ')(负表示右侧填充)
fixedlength=true 是一个布尔值,表示填充结果应该被修剪为"填充"的最大长度(即在我的示例中为5)
自 2022 年起,使用以下内容:
${level:uppercase=true:padding=-5}
Run Code Online (Sandbox Code Playgroud)
例子:
2022-04-15 03:04:58.0764 | INFO | Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler | AuthenticationScheme: Cookies was challenged.
Run Code Online (Sandbox Code Playgroud)
如果您想右对齐,请使用5代替-5。
参考: https: //github.com/NLog/NLog/wiki/Pad-Layout-Renderer