2010-10-14 2 views
26

Моя потребность проста - я хочу, чтобы открыть файл текстового журнала в excel, чтобы он автоматически разбивал его в столбцах, соответствующих полям журнала.Как вставить вкладки в шаблон макета log4net?

Для этого мне нужны поля журнала, разделенные вкладкой.

Моя картина: %utcdate [%thread] %-5level %logger - %message%newline

мне нужно что-то вроде: %utcdate%tab[%thread]%tab%-5level%tab%logger%tab%message%newline

Спасибо.

ответ

40

Предостережение: я фактически не использовал log4net. Но если я правильно понимаю, конфигурация - это XML-файл, не так ли? И шаблон - это просто текст с некоторыми специальными токенами. Так вы попробовали внедрить фактические символы табуляции в свой шаблон? Последовательность XML для язычка является 	, например:

<conversionPattern value="%utcdate&#9;[%thread]&#9;%-5level&#9;%logger&#9;%message%newline" /> 

Или, если вы подачи рисунка на какой-то другой путь (возможно, через PatternString constructor или что угодно), просто включают символы табуляции в строке вы переходящего в . Документы для этого конструктора отложить на PatternLayout документов говорить о самых строках, и there they say:

Вы можете вставить любой необработанный текст в шаблоне преобразования.

(Их акцент.) Стоит попробовать, в любом случае ...

+2

Спасибо. \ t не работает, но действительно работает. – mark

+0

@mark: Хорошая сделка, рад, что помог. –

0

Если это как раз о Excel, тогда вы можете использовать какой-либо другой разделитель, возможно, даже ; будет достаточно хорошим.

Другой вариант - написать собственный конвертер шаблонов. Пример можно найти here.

+0

Нет, это не только для Excel. Файл должен оставаться читаемым человеком. – mark

+0

Затем перейдите к опции 2. Насколько я могу сказать, log4net в настоящее время не в состоянии делать то, что вы хотите. –

6

Это работает для меня:

1) Если ваш класс регистрации конкретизируется, добавьте следующую строку:

log4net.GlobalContext.Properties["tab"] = "\t"; 

2) Затем в XML-файле log4net сделайте ссылку на недавно созданное свойство log4net. Например:

<conversionPattern value="%property{tab}%message%newline" /> 
+0

Это решение работало лучше для меня, потому что я применяю xml-преобразования к log4net.xml (с slowcheeath) и преобразует обратно в символ табуляции. – BernardV

0

вкладки в шаблон Вы можете напечатать без побега (см пространства между уровнем и датой):

<conversionPattern value="%level %date{HH:mm:ss,fff} ..." /> 

Я не могу вкладку в визуальной студии пишет, потому что он пишет пространства, но Я набрал вкладку в блокнот ++, скопирую ее (ctrl + c ctrl + v) и она работает.

EDIT: переполнение стека заменило мою вкладку пробелами. Поэтому вам нужно набрать свою собственную вкладку

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