2013-12-18 37 views
8

我正在使用NLog進行日誌記錄。 目前我的佈局字符串是:NLog:格式化日誌級別和空白空間

"${date:format=dd.MM.yyyy HH\\:mm\\:ss,fff} | ${level:uppercase=true} | ${message}" 

這將導致以下日誌:

18.12.2013 11:23:14,834 | INFO | this is an info 
18.12.2013 11:23:14,835 | TRACE | this is a trace 

我現在想的是格式化「$級別」用空白字符來填補,使它看起來像一個有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 

我沒有傷心地發現什麼...誰能幫助?

非常感謝!

回答

12

嘗試使用PaddingLayoutRendererWrapper。我不知道哪裏好配置例子,但在NLOG的源代碼庫的源就設在這裏,所以也許你可以反向工程的正確配置:

https://github.com/NLog/NLog/blob/master/src/NLog/LayoutRenderers/Wrappers/PaddingLayoutRendererWrapper.cs

我想你會做這樣的事:

"${date:format=dd.MM.yyyy HH\\:mm\\:ss,fff} | ${padding:padding=5,fixedlength=true:${level:uppercase=true}} | ${message}" 

希望,這例子將墊與左邊的5位,然後將所有的日誌級別值修整爲5

padding=5絕對長度意味着加5個padcharacters(DEF ault是' ')到左邊(負值表示墊在右邊)

fixedlength=true是一個布爾值,指示填充後的結果應該被修剪到最大長度爲「填充」(即填充)。 5在我的例子中)

+13

謝謝!填充是我正在尋找的詞:-)隨着你的提示,我發現它 - 它更簡單:$ {level:uppercase = true:padding = -5}是否:-) – user3114804

+0

至於2017,LayourRenderer名稱從$ {padding}更改爲$ {pad}。除此之外,一切正常 –