2013-12-18 10 views
8

Używam języka NLog do rejestrowania. Obecnie mój Układ-String jest:NLog: Formatuj plik z Whitespaces

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

Powoduje to następujące dzienniki:

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

Co chcę teraz sformatować „$ poziom” wypełniają się odstępy tak, że wygląda jak stół z 5 postaciami.

chciałbym posiadać:

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

Nie mogę znaleźć nic niestety ... Czy ktoś może pomóc?

Wielkie dzięki!

Odpowiedz

12

Spróbuj użyć PaddingLayoutRendererWrapper. Nie jestem pewien, gdzie dobrym przykładem config jest, ale źródło w repozytorium źródłowym nlog mieści się tutaj, więc może można odwrócić inżynier poprawną konfigurację:

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

myślę byś zrobił coś takiego :

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

mieć nadzieję, że wkładka będzie przykład wszystkie wartości poziomu log 5 z przestrzeni na lewo, a następnie przycinanie do absolutnego długości 5.

padding=5 oznacza dodanie 5 padcharacters (def ault to ' ') w lewo (ujemna oznacza podkładka po prawej)

fixedlength=true to wartość logiczna, która wskazuje, że wyściełany wynik powinien zostać przycięty do maksymalnej długości "dopełnienia" (tj. 5 w moim przykładzie)

+13

Dziękuję! Padding był słowem, którego szukam :-) Z twoimi wskazówkami dowiedziałem się - jest jeszcze prostsze: $ {level: uppercase = true: padding = -5} robi to :-) – user3114804

+0

Tak jak w 2017 roku, LayourRenderer nazwa zostanie zmieniona z $ {padding} na $ {pad}. Poza tym wszystko działa –

Powiązane problemy