Как перенаправить файл java.util.logging в файл? - PullRequest
6 голосов
/ 27 ноября 2010

У меня есть Java-программа, использующая внешнюю библиотеку.Основная программа использует log4j для регистрации своих сообщений, а библиотека использует java.util.logging.

Моя проблема заключается в том, что сообщения журнала из внешней библиотеки и основной программы смешиваются в консоли.

Я бы хотел перенаправить все сообщения журнала из внешней библиотеки в файл.Я пытался сделать это с файлом logging.properties:

handlers= java.util.logging.FileHandler
.level= INFO
java.util.logging.FileHandler.pattern = foo.log
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

Этот файл инициализируется с помощью:

System.setProperty("java.util.logging.config.file", "logging.properties");

К сожалению, сообщения журнала из внешней библиотеки продолжают появляться в консоли.Должен ли я использовать что-то вроде slf4j для перехвата сообщений журнала от java.util.logging?

Спасибо за ваше время.

1 Ответ

12 голосов
/ 27 ноября 2010

Вот код из одной из моих программ. Это также делает автоматический поворот. Класс config мой собственный, который читается из файлов свойств. Вы можете просто заменить это своими собственными значениями.

Logger rootLogger = Logger.getLogger(""); 
logHandler = new FileHandler(config.getLogFile(), 
                             config.getLogRotateSize()*1024*1024, 
                             config.getLogRotateCount(), false); 
logHandler.setFormatter(new SimpleFormatter()); 
logHandler.setLevel(Level.INFO); 
rootLogger.removeHandler(rootLogger.getHandlers()[0]); 
rootLogger.setLevel(Level.INFO); 
rootLogger.addHandler(logHandler); 

Обратите внимание, что это для автономной программы. Любой сервер приложений имеет свои собственные инструменты конфигурации журналирования. Программа также может изменять форматер и уровни на лету, если требуется динамический режим отладки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...