Почти звуки связывают мой. Уже отчет об ошибках файла a начиная ни с какой сервисной работы XMPP после моего обновления.
На мой взгляд, единственное, что имеет для JDK Logger, это то, что он является частью JDK, поэтому он не добавляет внешних зависимостей. Если выбор будет только между этими двумя, я бы выбрал Log4j. Он по-прежнему имеет лучшую поддержку с точки зрения приложений, количества людей, которые его знают (по моим анекдотическим наблюдениям), и лучшего API (что тоже субъективно).
Начать проект сегодня - самое заманчивое занятие. это пойти с slf4j и отложить решение - вы всегда можете подключить другую структуру под slf4j, просто изменив путь к классам.
При этом есть и другие варианты (например, Log5j), которые используют преимущества последних возможностей языка Java. Я бы рекомендовал внимательно посмотреть Logback (от одного из основных программистов Log4j, как и slf4j).
Для нового проекта я настоятельно рекомендую проект slf4j, который предоставляет общий интерфейс для нескольких фреймворков регистратора.
{} -синтаксис, описанный Стивом Б, также присутствует в slf4j (тот же автор), поэтому вы получаете все преимущества независимо от бэкэнда, и ВСЕ ЕЩЕ получаете независимость от бэкэнда. Также доступен мост log4j, поэтому существующий код может прозрачно использовать slf4j. Это действительно хорошо.
Для реального бэкэнда, логбэк - это хорошо, но вы, возможно, уже вложили средства в log4j - это легко использовать.
Я никогда не использовал прямой регистратор JDK, но для нового проекта я настоятельно рекомендую Logback , разработан как преемник log4j. Некоторые из очень хороших вещей, которые вы можете сделать с его помощью:
переход от
if (log.isDebugEnabled())
{
log.warn (i + "many ints,"+ l+"many longs");
}
к
log.debug("{} many ints, {} many longs", i, l);
Обратной стороной является то, что для многих пакетов в любом случае требуется log4j, поскольку он настолько распространен, поэтому в ваш проект может потребоваться включить 2 пакета регистрации.
Я бы порекомендовал API журналирования JDK . Пользуюсь им много лет без каких-либо проблем. Это часть JDK, поэтому дополнительная банка не требуется. Различия между журналированием log4j и JDK невелики и, на мой взгляд, не оправдывают использование log4j.