Разница в использовании java.util.logging и Log4j Loggers - PullRequest
7 голосов
/ 13 февраля 2010

Я разрабатываю Java-приложение, для которого мне нужно использовать механизм регистрации. И теперь я смущен, чтобы выбрать или регистратор библиотек Java или пойти на Log4j регистратор.

Так что я хочу знать, когда я могу пойти на Java-регистратор и когда я могу пойти на log4j logger.

Ответы [ 5 ]

10 голосов
/ 13 февраля 2010

Я бы предложил вам вместо этого использовать SLF4J , чтобы отделить ваше приложение от определенных каркасов журналирования. Он имеет адаптеры для различных популярных каркасов журналирования, таких как Jakarta Logging, JDK1.4 logging, log4j и т. Д., Что делает его хорошей абстракцией для нужд журналирования.

3 голосов
/ 13 февраля 2010

Подход, который я сейчас рекомендую, заключается в использовании SLF4J в качестве API для ведения журнала. Затем вы можете выбрать свою структуру ведения журнала в зависимости от ваших потребностей по мере их обнаружения.

Я написал статью о том, что я считаю наилучшей практикой для начала работы с SLF4J, и простую запись в журнал System.out, которая в настоящее время размещена по адресу. http://runjva.appspot.com/logging101/index.html

Надеюсь, это полезно.

3 голосов
/ 13 февраля 2010

Существуют проект Apache Commoms Logging и SLF4J , каждый из которых абстрагирует базовую библиотеку журналов.

На практике я склонен использовать Log4J над встроенными классами журналирования. Главным образом потому, что Log4J можно настроить для каждого веб-приложения на сервере приложений, тогда как ведение журнала JDK настроено для JVM.

3 голосов
/ 13 февраля 2010

Класс Logger ранее не был частью jdk, поэтому возникло несколько реализаций библиотеки. Библиотека Log4j имеет один из наиболее полных наборов утилит ведения журналов (Formatters, Appenders и т. Д.). Тем не менее, для большинства разработчиков это было бы излишним, и простого java.util.Logger было бы достаточно.

Лично я использую пользовательскую оболочку поверх своей реализации логгера. Это позволяет мне определять пользовательские вызовы для выполнения функциональной регистрации / аудита.

2 голосов
/ 13 февраля 2010

Я нахожу Log4j более гибким, когда дело доходит до настройки cfg ведения журнала без повторной компиляции кода в рабочей среде.

...