Разница между Logger.getLogger(className) и LogFactory.getLog(className)?

Я знаю его разницу в пакетах

1) org.apache.log4j.Logger logger = Logger.getLogger(clazz);

2) org.apache.commons.logging.Log log = LogFactory.getLog(clazz);

Первый использует регистраторы через log4j, а второй использует commons.logging. У нас есть огромный проект, где в некоторых классах регистраторы настраиваются с помощью log4j, а в некоторых случаях - с commons.logging.

Я нашел файл свойства log4j, хотя. Есть ли аналогичный файл свойств для commons.logging? Где я могу настроить для ведения общедоступных записей?. Я не могу видеть журналы, сгенерированные commons-logging.

Любая помощь приветствуется.

Ответы

Ответ 1

Да, commons-logging - это API-интерфейс фасада, который должен был абстрагировать вас от базовой структуры ведения журнала (на практике существовал выбор между и java.util.logging), чтобы вы могли переключаться между собой, не касаясь кода - просто переключив библиотеки, доступные в CLASSPATH.

К сожалению, из-за некоторых ошибок дизайна у него были проблемы со сложными средами загрузки классов, такими как серверы приложений. В настоящее время он эффективно заменяется .

В вашем случае я бы рекомендовал придерживаться одного API - Log4J или commons-logging, хотя commons-logging (скорее всего) делегирует log4J. Вы также можете перейти на использование SLF4J и установить интерфейсные интерфейсы, но это немного более продвинуто.