2013-12-18 32 views
8

ロギングにNLogを使用しています。 は、現在、私のレイアウト、文字列は次のようになります。これは、次のログになりNLog:Whitespacesでログレベルをフォーマットする

"${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を試してみてください。

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

私はあなたがこのような何かをするだろうと思う:ので、多分あなたは正しい構成をリバースエンジニアリングすることができ、私は良い設定例がどこにあるかわからないんだけど、NLogのソースリポジトリのソースがここに位置しています:

"${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 (負の場合は右側のパッドを意味する)

fixedlength=trueは、パディングされた結果が「パディング」の最大長にトリミングされるべきであることを示すブール値である。 5例)

+13

ありがとうございます!パディングは、私が探している言葉でした:-)あなたのヒントで、私はそれを見つけました。それはもっと簡単です:$ {level:uppercase = true:パディング= -5} – user3114804

+0

2017に関しては、LayourRenderer名前は$ {padding}から$ {pad}に変更されます。それ以外にも、 –

関連する問題