Как работает JDK Logger по сравнению с Apache log4j?Сравнить log4j и Logger
Какой из них лучше для новых проектов, предназначенных для Java 6? Как они сравниваются с точки зрения гибкости и конфигурируемости?
Как работает JDK Logger по сравнению с Apache log4j?Сравнить log4j и Logger
Какой из них лучше для новых проектов, предназначенных для Java 6? Как они сравниваются с точки зрения гибкости и конфигурируемости?
На мой взгляд, единственное, что JDK Logger делает для него, это то, что он является частью JDK, поэтому он не добавляет внешнюю зависимость. Если выбор будет только между этими двумя, я бы пошел с Log4j. Он по-прежнему имеет лучшую поддержку с точки зрения добавок, количества людей, которые знают это (в моих анекдотических наблюдениях), и лучшего API (что также субъективно).
Запуск проекта сегодня, самая заманчивая вещь - пойти с slf4j и принять решение - вы всегда можете подключить другую структуру под slf4j, просто изменив путь к классам.
Это, как говорится, есть другие варианты (такие как Log5j), которые используют последние возможности языка Java. Я бы рекомендовал долго смотреть Logback (от одного из основных программистов Log4j, как и slf4j).
После просмотра журнала, я думаю, что буду использовать его для новых проектов без каких-либо зависимостей библиотек от log4j, а log4j в противном случае. – notnoop
Я никогда не использовал прямой регистратор JDK, но для нового проекта я бы настоятельно рекомендовал Logback, , разработанный как преемник log4j. Некоторые из самых приятных вещей, которые вы можете сделать с ним:
перейти от
if (log.isDebugEnabled())
{
log.warn (i + "many ints,"+ l+"many longs");
}
в
log.debug("{} many ints, {} many longs", i, l);
Даунсайд - много пакетов требуют log4j в любом случае, так как это так распространено, поэтому вашему проекту может потребоваться включить 2 регистрационных пакета.
Существующая зависимость log4j заставляет меня искушаться придерживаться ее для таких проектов! – notnoop
Для нового проекта я настоятельно рекомендую проект slf4j, который предоставляет общий интерфейс для нескольких фреймворков регистратора.
{} -syntax, описанный Стивом B, присутствует также в slf4j (тот же автор), поэтому вы получаете все преимущества независимо от бэкэнд и STILL получаете независимость от бэкэнда. Также доступен мост log4j, поэтому существующий код прозрачно может использовать slf4j. Это действительно приятно.
Для фактического бэкэнд логин хороший, но вы, возможно, уже вложили капитал в log4j - это легко можно использовать.
Я бы порекомендовал JDK logging API. Я использовал его много лет, без каких-либо проблем. Это часть JDK, поэтому никакой дополнительной банки не требуется. Различия между log4j и JDK-регистрацией малы и, на мой взгляд, не оправдывают использование log4j.
Стандартный API против log4j
общий вопрос задают разработчиков Java является:
Почему мы должны использовать рамки протоколирования log4j, когда Java предоставляет API для регистрации. К API java можно получить доступ (java.util.logging)?
Log4j имеет следующие преимущества по сравнению со стандартной лесозаготовительной API:
Этот общий вопрос - именно то, что я сейчас размышляю (и почему я здесь), но этот ответ меня смущает больше. В этом ответе, что именно подразумевается под «надежным», почему log4j более надежный? Когда дело доходит до «дополнительных функций», есть ли какие-либо моменты? Опять же, с надежностью, что такое надежная система форматирования? Я признаю, что я «новый» для входа в java, но эти реализации кажутся ужасно сверху для большинства приложений с малым средним. – ThePerson
Я боролся с этим вопросом несколько раз; с jdk7 и jdk8; java logging супер быстрый и гладкий, но только мы должны поставить шляпу программиста во время настройки.
Чтобы зарегистрировать несколько файловых ограничений, мы создаем классы signare, расширяющие FielHandler, и используем их в файле свойств для настройки, подобные тонкости кажутся трудоёмкими, но как только вы получите эффективность и надежность повесить.
Довольно много чего лучше, чем 'java.util.logging', даже если это означает введение зависимостей сторонних разработчиков. – skaffman