Форматирование Java Logging - PullRequest
2 голосов
/ 02 марта 2012

Я пытаюсь отформатировать некоторые записи в журнале Java через файл свойств, однако это не работает. У меня есть эти строки в файле свойств:

java.util.logging.ConsoleHandler.formatter=mypackage.logging.LogFormatter
java.util.logging.FileHandler.formatter=mypackage.logging.LogFormatter

где мой пользовательский форматировщик LogFormatter находится в mypackage.logging

Вывод журнала показывает, что используется SimpleFormatter, а не мой пользовательский форматер.

Как я могу настроить мой пользовательский форматер в файле свойств ведения журнала?

редактирование: Я перепробовал все готовые форматеры, такие как com.bea.logging.LogMessageFormatter, SimpleFormatter и XmlFormatter. Они работают просто отлично. Это просто любой новый форматер, который я создаю, не работает (расширение Formatter). Может ли это быть проблемой classpath?

1 Ответ

0 голосов
/ 27 ноября 2013

LogManager сообщит об ошибках в System.err, который, вероятно, перенаправлен в файл журнала.Поиск этого файла журнала должен вам помочь.

Если вы имеете дело с любым классом, невидимым из системный загрузчик классов , вы столкнетесь с JDK-6448699 LogManager не загружает журналправильно обработчик и JDK-6878454 Загрузка класса LogManager несовместима с лучшими практиками Java EE .

Чтобы убедиться, что ваш Formatter виден из системного пути класса, попробуйте следующий код:

Class.forName("mypackage.logging.LogFormatter", true, ClassLoader.getSystemClassLoader());

Вы можете установить системное свойство sun.misc.URLClassPath.debug на true или использовать -verbose:class при запуске, чтобы получить дополнительную информацию об отладке при загрузке классов.

...