Первое, что я хотел бы сделать, это попытаться удалить привязку logback из вашего classpath, как указано в документации .
Итак, ваша конфигурация pom.xml
будет содержать исключение,например:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
Кроме того, я бы рекомендовал не использовать API-классы log4j напрямую, а вместо этого использовать sfl4j
API.Spring-boot уже настроен на использование SL4J с любым компоновщиком, который вы настроили на пути к классам (в данном случае это log4j).
Поэтому вместо использования org.apache.logging.log4j.Logger
я бы использовал org.slfj.Logger
для вашего класса регистратора исоздайте его с помощью org.slf4j.LoggerFactory.getLogger()
.Преимущество использования этого по сравнению с непосредственным использованием классов log4j состоит в том, что вы можете переключать подшивки под slf4j без необходимости изменять весь ваш код.На всякий случай, если позже вы решите, что хотите использовать logback или что-то еще.
Если вы сделаете это изменение в pom и используете API-интерфейсы slf4j, я думаю, подпружиненная загрузка автоматическиКонфигурация загрузит вашу конфигурацию и начнет входить в файл appender, а также в консоль.