Найдите путь в сцене Java Logging Frameworks - PullRequest
3 голосов
/ 23 января 2009

В Java есть много фреймворков / API, которые помогут вам войти в приложение:

  1. Java API имеет пакет java.util.logging.
  2. Apache Log4j.
  3. Регистрация Apache Commons.
  4. SLF4J (Лесозаготовительный фасад).
  5. JLo. и многое, многое другое ...

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

Кто-нибудь, кто имел опыт работы с более чем одной структурой, может поделиться своим опытом? когда лучше использовать один фреймворк поверх другого и с точки зрения архитектуры приложения? Почему я предпочитаю одно над другим?

Спасибо

Ответы [ 5 ]

10 голосов
/ 23 января 2009

Commons Logging является источником странных проблем с загрузкой классов . Избегайте этого, если можете. Я предпочитаю log4j при разработке приложения. Если вы разрабатываете библиотеку / инфраструктуру и не хотите применять библиотеку журналирования, выберите slf4j.

4 голосов
/ 23 января 2009

Если его новый код, то я бы начал с slf4j, поскольку он обеспечивает самый простой способ переключения между основными API-интерфейсами журналирования, просто включив необходимый slf- [logging_api] .jar в classparth вашего приложения. Например, если вы начинаете с log4j, вам все равно нужно настроить регистратор Conole в log4j.xml, чтобы увидеть результаты вашей регистрации, а в slf4j вы просто включаете slf4j-simple.jar.

3 голосов
/ 29 мая 2009

Logback - это перезапись log4j. Если вам нравится log4j, вам лучше войти в систему.

Более того, logback - это встроенная реализация API SLF4J, что означает, что вы используете logback, а затем фактически используете SLF4J. Таким образом, если по какой-либо причине вы хотите переключиться обратно на другую среду ведения журналов, будь то log4j или j.u.l. Вы можете сделать это, заменив один JAR-файл другим.

0 голосов
/ 23 января 2009

Независимо от официальной позиции "log4j", это стандартная структура ведения журнала.

Работает хорошо и уже давно. Это наиболее развернутая структура ведения журналов, используемая тысячами приложений и пакетов. Кроме того, структура ведения журналов, скорее всего, появится в резюме разработчиков.

Придерживайтесь log4j, нет веских причин, чтобы попробовать что-то еще.

0 голосов
/ 23 января 2009

Этот вопрос кажется идентичным 354837 .

Простой ответ заключается в том, что вы пошли бы на Commons Logging, если вы пишете библиотеку, которая может быть добавлена ​​в приложения, где вы не можете управлять журналом, один из других вариантов, если нет. Я лично использую CL во всех случаях, просто потому что это распространено - мне не нужно помнить различия между фреймворками.

...