2012-03-02 2 views
2

Я пытаюсь отформатировать некоторые java-записи через файл свойств, однако он не работает. У меня есть эти строки в файле свойств:Форматирование регистрации 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). Может ли это быть проблемой класса?

ответ

0

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

Если вы имеете дело с любым классом, не видимым с system class loader, вы столкнетесь с JDK-6448699 LogManager does not load log handler correctly и JDK-6878454 LogManager class loading inconsistent with Java EE best practices.

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

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

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

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