связь между log4j и apache.commons.logging - PullRequest
10 голосов
/ 13 декабря 2011

Может кто-нибудь, пожалуйста, скажите мне Какая связь между log4j и apache.commons.logging? какой из них более популярен и лучше?

Я импортировал существующее приложение, в которое они импортировали import org.apache.commons.logging.LogFactory;, написал отдельный класс с именем Log и переопределил некоторые методы как critical, warn, info

Например

 public static void info(String caller, String toWrite)
   {
      write(caller,toWrite,Log.INFO);
   }

Может кто-нибудь сказать, пожалуйста, log4j и apache.commons.logging разные ??

Ответы [ 3 ]

14 голосов
/ 13 декабря 2011

Apache Commons Logging - это абстракция для конкретной реализации.Он использует log4j, если он присутствует и настроен.Я бы использовал регистрацию Commons в моем коде и log4j в качестве реализации регистрации.

2 голосов
/ 10 июля 2016

log4j - это структура ведения журнала, т. Е. Она предоставляет код для регистрации сообщений. Commons-logging - это уровень абстракции для каркасов журналирования, он сам ничего не регистрирует. Например, если я пишу код с использованием регистрации общего достояния и внедряю его в JBoss, регистрация ведется с помощью log4j, но если я развертываю его в протоколировании WebSphere, то выполняется собственной реализацией ведения журнала WebSphere. Если я запускаю тот же код, что и отдельное приложение, то используется собственное ведение журнала Java

0 голосов
/ 24 октября 2017

В соответствии с документацией java-doc о регистрации общего пользования

Конкретный подкласс LogFactory, который реализует следующий алгоритм для динамического выбора класса реализации ведения журнала, для которого создается экземпляр оболочки:

  • Использовать атрибут фабричной конфигурации с именем org.apache.commons.logging.Log для идентификации запрошенного класс реализации.
  • Используйте системное свойство org.apache.commons.logging.Log для определения запрошенный класс реализации.
  • Если Log4J доступен, вернуть экземпляр org.apache.commons.logging.impl.Log4JLogger.
  • Если доступен JDK 1.4 или более поздней версии, вернуть экземпляр org.apache.commons.logging.impl.Jdk14Logger.
  • В противном случае вернуть экземпляр org.apache.commons.logging.impl.SimpleLog

Отсюда вывод:

  • регистрация общего достояния - это больше абстракция. Он также может жить без LOG4J.
  • Если Log4j существует, он выбирает его. В противном случае доступны другие значения по умолчанию.
  • LOG4J популярен благодаря простому перенаправлению вывода в файл и гибкости настройки уровней журнала.

URL JavaDoc: https://commons.apache.org/proper/commons-logging/javadocs/api-1.1.3/index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...