Как перенаправить java.util.logging в файл?

У меня есть программа на 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?

Спасибо за уделенное время.


person gulbrandr    schedule 27.11.2010    source источник
comment
дубликат stackoverflow.com/questions/751736/   -  person Aravind Yarram    schedule 27.11.2010


Ответы (1)


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

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); 

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

person JOTN    schedule 27.11.2010