Разница между log4j-to-slf4j и log4j-over-slf4j

Я действительно не понимаю разницы между log4j-to-slf4j.jar и log4j-over-slf4j.jar. Из того, что я прочитал в Интернете

log4j-to-slf4j.jar: (https://logging.apache.org/log4j/2.x/log4j-to-slf4j/index.html)

«Адаптер Log4j 2 — SLF4J позволяет перенаправлять приложения, закодированные в API Log4j 2, на SLF4J. Использование этого адаптера может привести к некоторой потере производительности, поскольку сообщения Log4j 2 должны быть отформатированы, прежде чем их можно будет передать в SLF4J. С Log4j 2 как реализация, они обычно форматируются только тогда, когда к ним обращается фильтр или приложение».

log4j-over-slf4j.jar (http://www.slf4j.org/legacy.html)

«Он позволяет пользователям log4j переносить существующие приложения на SLF4J, не изменяя ни единой строки кода, а просто заменяя файл log4j.jar файлом log4j-over-slf4j.jar, как описано ниже. Модуль log4j-over-slf4j содержит замены наиболее широко используемые классы log4j, а именно org.apache.log4j.Category, org.apache.log4j.Logger, org.apache.log4j.Priority, org.apache.log4j.Level, org.apache.log4j.MDC и org. apache.log4j.BasicConfigurator. Эти замещающие классы перенаправляют всю работу на соответствующие им классы SLF4J».

Насколько я понимаю, оба решают одну и ту же проблему. Но где именно разница? Мост против адаптера?

Большое спасибо!


person Splioo    schedule 01.04.2020    source источник


Ответы (1)


Пожалуйста, поправьте меня, если я ошибаюсь - постараюсь ответить на мой вопрос.

Я только что посмотрел на mvnrepository.org - ниже версии 2.x нет log4j-to-slf4j.jar, а по ссылке, которую я вставил выше, указано, что это адаптер log4j-2.x< /strong> а не 1.x. Также его предоставляет Apache Foundation.

Напротив, log4j-over-slf4j.jar задокументирован на slf4j.org и перенаправляет записи log4j-1.x в slf4j-api.

Так что я думаю, что я смешал яблоки и груши.

person Splioo    schedule 09.04.2020
comment
Я думаю, ты понял. Самая большая разница в том, что log4j имеет две версии. log4j-over-slf4j помогает перенести устаревший код в новую структуру ведения журналов, заботясь об отправке сообщений в slf4j (который затем перенаправляет их в любую структуру, которую вы используете для ведения журнала). log4j-to-slf4j делает то же самое, но не предназначен специально для переноса устаревших проектов (я думаю, его все еще можно использовать для этого). Не забывайте: если в идентификаторе GAV есть «логирование», имеется в виду log4j2.X. Мне стало легче различать - person metters; 14.04.2020