#logstash #slf4j #logback-classic #logstash-logback-encoder
#logstash #slf4j #logback-классический #logstash-logback-кодировщик
Вопрос:
У меня есть внутренняя библиотека, которая была обновлена для использования, logstash
которая имеет обязательную зависимость от logback
, следовательно logback-classic
(которая имеет собственное приложение slf4j внутри своих пакетов, что означает, что я не могу исключить здесь какую-либо библиотеку).
Когда я пытаюсь использовать эту зависимость в качестве jar поверх любого другого устаревшего модуля (все они используют slf4j-log4j12
) Я действительно получаю сообщение об адской зависимости журнала:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/asdf/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/asdf/.m2/repository/org/slf4j/slf4j-log4j12/1.7.26/slf4j-log4j12-1.7.26.jar!/org/slf4j/impl/StaticLoggerBinder.class]
но сама проблема в том, что я не могу просто исключить logback-classic, поскольку он является обязательным для logstash, и я не могу перенести свои приложения на использование logback, поскольку они настроены с log4j.xml
Есть ли способ заставить slf4j использовать приложение appender вместо того, которое поступает из библиотеки logback, ИЛИ любая другая идея, чтобы только данный пакет использовал приложение, а остальные использовали другое?