Сравните log4j и Регистратор

Почти звуки связывают мой. Уже отчет об ошибках файла a начиная ни с какой сервисной работы XMPP после моего обновления.

9
задан notnoop 3 September 2009 в 20:56
поделиться

4 ответа

На мой взгляд, единственное, что имеет для JDK Logger, это то, что он является частью JDK, поэтому он не добавляет внешних зависимостей. Если выбор будет только между этими двумя, я бы выбрал Log4j. Он по-прежнему имеет лучшую поддержку с точки зрения приложений, количества людей, которые его знают (по моим анекдотическим наблюдениям), и лучшего API (что тоже субъективно).

Начать проект сегодня - самое заманчивое занятие. это пойти с slf4j и отложить решение - вы всегда можете подключить другую структуру под slf4j, просто изменив путь к классам.

При этом есть и другие варианты (например, Log5j), которые используют преимущества последних возможностей языка Java. Я бы рекомендовал внимательно посмотреть Logback (от одного из основных программистов Log4j, как и slf4j).

11
ответ дан 4 December 2019 в 10:33
поделиться

Для нового проекта я настоятельно рекомендую проект slf4j, который предоставляет общий интерфейс для нескольких фреймворков регистратора.

{} -синтаксис, описанный Стивом Б, также присутствует в slf4j (тот же автор), поэтому вы получаете все преимущества независимо от бэкэнда, и ВСЕ ЕЩЕ получаете независимость от бэкэнда. Также доступен мост log4j, поэтому существующий код может прозрачно использовать slf4j. Это действительно хорошо.

Для реального бэкэнда, логбэк - это хорошо, но вы, возможно, уже вложили средства в log4j - это легко использовать.

3
ответ дан 4 December 2019 в 10:33
поделиться

Я никогда не использовал прямой регистратор JDK, но для нового проекта я настоятельно рекомендую Logback , разработан как преемник log4j. Некоторые из очень хороших вещей, которые вы можете сделать с его помощью:

  • создание параметров стиля printf, больше никаких беспорядочных конкатенационных строк, защищенных if logger.isDebugEnabled ().

переход от

if (log.isDebugEnabled())
 { 
    log.warn (i + "many ints,"+ l+"many longs");
}

к

log.debug("{} many ints, {} many longs", i, l);
  • очень гибкая конфигурация , включая конфигурации, которые будут печатать трассировки. Конфигурация - xml, но на их сайте есть утилита, которая будет генерировать xml-конфигурацию из вашей конфигурации log4j, чтобы вы могли начать работу.

Обратной стороной является то, что для многих пакетов в любом случае требуется log4j, поскольку он настолько распространен, поэтому в ваш проект может потребоваться включить 2 пакета регистрации.

4
ответ дан 4 December 2019 в 10:33
поделиться

Я бы порекомендовал API журналирования JDK . Пользуюсь им много лет без каких-либо проблем. Это часть JDK, поэтому дополнительная банка не требуется. Различия между журналированием log4j и JDK невелики и, на мой взгляд, не оправдывают использование log4j.

1
ответ дан 4 December 2019 в 10:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: