Остается ли добавить библиотеку log4j в проект Java 5 только для регистрации скажем, некоторые исключения из файла с некоторыми хорошими настройками опрокидывания. Или же стандартная утилита logging выполнит эту работу?
Как вы думаете?
Остается ли добавить библиотеку log4j в проект Java 5 только для регистрации скажем, некоторые исключения из файла с некоторыми хорошими настройками опрокидывания. Или же стандартная утилита logging выполнит эту работу?
Как вы думаете?
Я бы сказал, что вы, вероятно, хорошо используете util.logging для потребностей, которые вы описываете.
Для хорошего дерева решений просмотрите Log4j vs java.util.logging
Вопрос первый: Ожидаете ли вы, что какой-либо из умных обработчиков Log4j не имеет такого JUL, например SMTPHandler, NTEventLogHandler или любого из очень удобных FileHandlers?
Вопрос второй: Вы видите, что хотите часто менять формат вывода журнала? Вам понадобится простой и гибкий способ сделать это? Другими словами, вам нужен Log4j PatternLayout?
Вопрос третий: Ожидаете ли вы определенную потребность в возможности изменения сложных конфигураций ведения журналов в ваших приложениях после их компиляции и развертывания в производственной среде? Ваша конфигурация звучит примерно так: "Серьезные сообщения из этого класса отправляются по электронной почте парню поддержки, серьезные сообщения из подмножества классов регистрируются в syslog deamon на нашем сервере, предупреждающие сообщения из другого подмножества классов регистрируются в журнале к файлу на сетевом диске A, а затем все сообщения от везде регистрируются в файл на сетевом диске B"? И вы видите, как вы настраиваете его каждые пару дней?
Если вы можете ответить "да" на любой из вышеуказанных вопросов, перейдите в Log4j. Если вы ответите определенному "нет" всем им, JUL будет более чем достаточным, и он будет удобно уже включен в SDK.
Тем не менее, почти каждый проект в эти дни, похоже, заканчивается, включая log4j, хотя бы потому, что его использует другая библиотека.
Я рекомендую вам использовать Simple Logging Facade для Java (SLF4J). Он поддерживает различные поставщики, которые включают Log4J и могут использоваться в качестве замены для ведения журналов Apache.
Log4j существует уже давно, и он работает очень хорошо. У меня нет научного исследования, чтобы поддержать его, но, основываясь на том, что я видел у большого числа клиентов, я легко вижу структуру ведения журналов, которую я вижу больше, чем любой другой. Он существует уже долгое время и не заменяется платформой Next Big Logging Framework, в которой говорится что-то.
Мгновенно прост в настройке и легко освоить базовые приложения (выходы). Доступны все хост-приложения, в том числе:
Плюс другие. Нетрудно также написать собственный appender. Кроме того, в каждом из приложений есть большая гибкость, которая позволяет вам конкретно контролировать, что выводится в вашем журнале.
Одна заметка: у меня была серия проблем с загрузчиками классов, когда я использовал logos в дополнение к log4j. Это было только для одного конкретного приложения, но мне было проще использовать только log4j, а не иметь гибкость, предлагаемую при использовании слоя абстракции, такого как запись в сообществах.
См. эту статью для подробнее:
Удачи!
java.util.logging предлагает полный пакет протоколирования без избыточного багажа, который некоторые из других предоставляют.
log4j - это гораздо более приятный пакет в целом и не содержит некоторых икота, которые содержит java.util.logging. Я бы предпочел, что использование log4j напрямую проще, чем использование регистрации в сообществах.
Я рекомендую использовать Apache Commmons Logging как ваш интерфейс ведения журнала. Таким образом, у вас есть гибкость для переключения реализаций ведения журналов в любое время, не требуя каких-либо изменений кода на вашем конце.
Я бы пошел с log4j. Возможности с log4j не устарели вообще!