Как настроить slf4j+logback в многомодульном проекте Maven?

В моем проекте Maven около семи подмодулей. Шесть из них упакованы как JAR и один как WAR.

Должен ли я создавать индивидуальную конфигурацию logback.xml в каждом модуле? Или мне следует иметь «общий» модуль, от которого зависят все остальные модули, и поместить туда один файл logback.xml? Есть ли другие варианты?

Спасибо.


person scabbage    schedule 31.01.2012    source источник


Ответы (2)


Все библиотечные JAR-файлы должны использовать только зависимость slf4j-api, и только окончательное приложение (в вашем случае это .war) должно содержать зависимость от журнала и ее конфигурацию.

В целях тестирования я думаю, что проще сделать зависимость <scope>test</scope> от slf4j-simple, ее проще использовать, и обычно она достаточно хороша для тестовых случаев.

person kan    schedule 01.02.2012
comment
Действительно, библиотеки, предназначенные для широкого распространения, должны зависеть только от slf4j-api. Однако не все банки являются библиотеками. Таким образом, хотя зависимость от slf4j-simple является допустимым вариантом, это не обязательно лучший вариант, чем зависимость от logback-classic. - person Ceki; 01.02.2012
comment
@Ceki В <scope>test</scope> вы можете использовать любые зависимости, которые пожелаете. У каждого библиотечного модуля могут быть свои тестовые зависимости, они в любом случае не конфликтуют. Следовательно, если этого достаточно (а это обычно так), используйте simple, чтобы Keep It SSimple. - person kan; 01.02.2012
comment
Использование тестовой области — хорошая идея. Все, что я говорю, это то, что в зависимости от slf4j-simple (в области тестирования) все в порядке, но также и в зависимости от logback-classic (в области тестирования) в модулях типа «jar». - person Ceki; 01.02.2012

Предполагая, что вы хотите добавить файл конфигурации logback.xml в модули с упаковкой jar для целей тестирования, просто поместите logback.xml в папку src/test/resources в каждом модуле типа «jar».

Как уже упоминалось @kan, привязка slf4j, например. slf4j-simple или logback-classic должны быть в области тестирования.

person Ceki    schedule 01.02.2012
comment
Скажите, пожалуйста, должен ли я хранить logback.xml в каждом модуле maven. - person nitinsridar; 22.10.2019
comment
В моем проекте есть 2 модуля, и у меня есть logback.xml как в модуле, так и в соответствующем logback.xml. - person nitinsridar; 22.10.2019