2013-12-18 3 views
8

Я использую NLog для регистрации. В настоящее время мой Компоновка-Строка:NLog: Формат loglevel с пробелами

"${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 is ' ') влево (отрицательная кнопка означает правую)

fixedlength=true - это логическое значение, указывающее, что мягкий результат должен быть обрезан до максимальной длины «заполнения» (т. 5 в моем примере)

+13

Спасибо! Padding было словом, которое я ищу :-) С вашими намеками я нашел это - это еще проще: $ {level: uppercase = true: padding = -5} делает это :-) – user3114804

+0

Что касается 2017 года, LayourRenderer имя изменяется от $ {padding} до $ {pad}. Кроме того, все работает –

Смежные вопросы