Spring Boot с log4j2 не работает при изменении имени файла свойств по умолчанию - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть приложение Spring Boot, и я хочу использовать log4j2 вместо logback. Я уже сделал все необходимые шаги, чтобы исключить spring-boot-starter-logging из spring-boot-starter-web и добавил зависимость spring-boot-starter-log4j2. Когда я добавляю файл log4j2.properties в папку ресурсов, он работает правильно, и я вижу журналы. Но когда я изменяю имя файла на, давайте скажем log4j2-demo.properties и установим logging.config = classpath: log4j2-demo.properties ничего не выводит на консоль. В целях тестирования я установил другое имя для файла lo4gj2 в logging.config, и это выдает ошибку, когда файл не найден, и я думаю, что свойство logging.config действительно работает и читает файл свойств.

приложение. свойства файл:

spring.profiles.active=dev

application-dev.properties файл:

logging.config=classpath:log4j2-demo.properties

log4j2 файл свойств:

status=debug
name=PropertiesConfig
#
filters=threshold
#
filter.threshold.type=ThresholdFilter
filter.threshold.level=debug
#
appenders=console
#
appender.console.type=Console
appender.console.name=STDOUT
appender.console.layout.type=PatternLayout
appender.console.layout.pattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
#
rootLogger.level=info
rootLogger.appenderRefs=stdout
rootLogger.appenderRef.stdout.ref=STDOUT

структура моего приложения:

src
  main
    java
    resources
       application.properties
       application-dev.properties
       log4j2-demo.properties

pom. xml:

...
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.graylog2.log4j2</groupId>
        <artifactId>log4j2-gelf</artifactId>
        <version>1.3.1</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.zalando/logbook-spring-boot-starter -->
    <dependency>
        <groupId>org.zalando</groupId>
        <artifactId>logbook-spring-boot-starter</artifactId>
        <version>2.0.0</version>
    </dependency>
  ...

1 Ответ

0 голосов
/ 06 февраля 2020

Если вы используете log4j 2.13.0, вы можете использовать профили для определения системных свойств log4j 2 в вашей конфигурации пружины. Таким образом, вы можете иметь:

application-dev.properties

log4j2.configurationFile=log4j2-demo.properties.

Log4j 2.13.0 также поддерживает размещение файла конфигурации log4j 2 в Spring Cloud Config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...