Почему файлы журнала обычно плоские? - PullRequest
1 голос
/ 22 августа 2011

Файлы журналов предназначены не для чтения на машинах, а только для пользователей? Интересно, существуют ли файловые приложения для какой-либо среды ведения журналов, которые записывают свои выходные данные в XML.

1 Ответ

2 голосов
/ 28 августа 2011

«Регистрация в XML» является довольно общим требованием, потому что не существует такого понятия, как стандартный формат файла журнала.Но поскольку XML-файлы представляют собой текстовые файлы, которые могут записывать каркасы ведения журналов, и поскольку многие из этих платформ позволяют настраивать формат строк журнала, я не вижу проблем в определении вывода журнала с помощью выбранных тегов XML.

Для log4j,это может быть что-то вроде этого:

log4j.appender.A1.layout.ConversionPattern=<line>%n<date>%d</date>%n<threadName>%t</threadName>%n<level>%p</level>%n<logger>%c</logger>%n<text>%m</text>%n</line>%n

с примером вывода:

<line>
<date>2011-08-28 08:27:33,727</date>
<threadName>main</threadName>
<level>INFO</level>
<logger>com.log4jeval.Main</logger>
<text>Entering application.</text>
</line>

Это похоже на XML, не так ли?Однако в нем не будет преамбулы XML, поэтому технически она не будет действительной.Если это так важно, я рекомендую написать собственный appender, расширяющий org.apache.log4j.FileAppender (или любой из его подклассов), который будет обрабатывать любой дополнительный открывающий / закрывающий текст в каждом файле журнала.

Проблема с записью журналов вXML, которого нет в простых текстовых файлах, заключается в том, что вы должны принудительно установить, что ни один возможный оператор журнала не будет печатать запрещенные символы XML, в противном случае вы получите не правильно сформированный XML.Этого трудно достичь без написания специального приложения - см., Например, org.apache.log4j.HTMLAppender.

...