Настройка формата журнала в logging.properties - PullRequest
5 голосов
/ 06 июня 2011

Мне нужно какое-то руководство по настройке формата журнала в Tomcat 7. Я относительно новичок в настройке журналирования, поэтому, пожалуйста, извините за юмор этот вопрос, если он кажется немного базовым ...

Использование стандартной регистрации в Tomcatнастроенный в logging.properties отображает журнал в формате:

Jun 6, 2011 9:27:00 AM com.class.Control_WS callWebService 
INFO: Response received from Control_WS:[Y]

Я хотел бы настроить эти журналы, чтобы сжать их до одной строки, а также расширить формат даты, включив в него миллисекунды.

Пример:

[2011-05-04T11:37:00.037|INFO|javax.enterprise.system.stream.out|Response recieved from Control_WS:[Y]]

Это то, что я могу сделать, используя JUL, или мне нужно переключиться на LOG4J?

Любые простые примеры, которые можно указать или указатьбудет высоко ценится.

Ответы [ 2 ]

9 голосов
/ 26 сентября 2012

Если вы используете Java 7 (или более позднюю версию :-)), вам больше не нужно создавать собственный класс форматера для java.util.logging (JUL). В Java 7 есть новое свойство java.util.logging.SimpleFormatter.format, которое контролирует, как JUL <a href="http://docs.oracle.com/javase/7/docs/api/java/util/logging/SimpleFormatter.html" rel="noreferrer">SimpleFormatter</a> печатает информацию. Так что, пока вы используете SimpleFormatter (который в любом случае используется по умолчанию), это будет работать.

Некоторые подводные камни:

  • Обязательно используйте Java 7. :-)
  • Обязательно используйте правильную строку формата. JUL вернет без вывода сообщений к формату по умолчанию (стандартный некрасивый двухслойный формат), если предоставленный вами формат недопустим.
3 голосов
/ 27 октября 2011

Похоже, вы бы сделали это, создав собственный класс, который расширяет Formatter , а затем укажите его в ваших logging.properties в качестве средства форматирования для вашего обработчика. Например, если вы используете ConsoleHandler , вы должны использовать это:

java.util.logging.ConsoleHandler.formatter = com.mycompany.MyFormatter

Затем поместите файл класса (либо отдельно, либо в банку) где-нибудь в пути к классам tomcat. Я бы создал банку с этим там, а затем поместил эту банку в ${catalina.home}/lib/ext

...