Log4J2 - регистрация не происходит при запуске из Eclipse - PullRequest
0 голосов
/ 10 марта 2020
Eclipse: 2019-06 (4.12.0)
Java: 1.8.0_201
Log4J2: whatever is pulled in by spring-boot-starter-log4j2 - might be 2.11.2 (mvn dependency:tree)
Spring Boot: 2.1.6.RELEASE

У меня есть набор служб Spring Boot, которые используют Log4J2 для ведения журнала. Ведение журнала настроено на два захвата: 1) вывод на консоль в файл текстового журнала и 2) вывод, созданный указанным классом c для отчета статистики в отдельный файл JSON.

Когда я выполняю услуги с помощью сценария запуска (на Linux), выходные данные правильно записываются в соответствующие файлы. Однако, когда я пытаюсь запустить службу из затмения (для разработки, тестирования / отладки и исправления ошибок), вывод всегда появляется в консоли. Файлы не создаются. Я перепробовал несколько вещей, но ничего не изменилось.

То, что я вижу в консоли, похоже, указывает на то, что, если что-то, Log4J2 не используется для регистрации, а вместо этого Logback есть . Я исключил Logback в файлах POM, но он каким-то образом все еще используется.

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/JO24447/.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:/C:/Users/JO24447/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.11.2/log4j-slf4j-impl-2.11.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.6.RELEASE)

2020-03-10 09:06:48.489  INFO 8204 --- [           main] e.m.l.m.s.r.ApplicationMain              : Starting ApplicationMain on 532064-MITLL with PID 8204 (C:\Users\JO24447\workspace\REST_RST_Service\mission-services\route-generator\target\classes started by JO24447 in C:\Users\JO24447\workspace\REST_RST_Service\mission-services\route-generator)
2020-03-10 09:06:48.491  INFO 8204 --- [           main] e.m.l.m.s.r.ApplicationMain              : No active profile set, falling back to default profiles: default
...

У кого-нибудь есть идеи о том, что нужно сделать, чтобы получить затмение, чтобы не использовать Logback и вместо этого использовать Log4J2?

Вот раздел зависимостей родительского файла POM:

  <dependencies>

    <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-web</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
        <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-data-rest</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
        <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-jetty</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    ...
...