Как исправить ошибку конфигурации log4j yaml «главная ОШИБКА Не удалось создать плагин класса org.apache.logging.log4j.core.appender.RollingFileAppender ...» - PullRequest
0 голосов
/ 14 января 2019

У меня есть конфигурационный файл для конфигурации log4j2 yaml в приложении весенней загрузки (версия-2.1.1). Выдает какое-то исключение, например «основная ОШИБКА. Не удалось создать плагин класса org.apache.logging.log4j.core.appender.RollingFileAppender для элемента RollingFile org.apache.logging.log4j.core.config.ConfigurationException: в конфигурации имеется несколько несовместимых приложений. указывая на тот же ресурс '../logs/app.log'"

Файл конфигурации

Configutation:
  name: Default

  Properties:
    Property:
      name: log-path
      value: "logs"

  Appenders:

    Console:
      name: Console_Appender
      target: SYSTEM_OUT
      PatternLayout:
        pattern: "[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"

    File:
      name: File_Appender
      fileName: ../${log-path}/app.log
      PatternLayout:
        pattern: "[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"

    RollingFile:
        name: RollingFile_Appender
        fileName: ../${log-path}/app.log
        filePattern: "../${log-path}/log/app.log.%d{yyyy-MM-dd-hh-mm}.gz"
        PatternLayout:
          pattern: "[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"
        Policies:
          SizeBasedTriggeringPolicy:
            size: 5000 KB
        DefaultRollOverStrategy:
          max: 30

  Loggers:

      Root:
        level: error
        AppenderRef:
            ref: Console_Appender

      Logger:
          name: com.app
          level: error
          AppenderRef:
              ref: Console_Appender
              level: info
              ref: File_Appender
              level: error
              ref: RollingFile_Appender
              level: debug

Ниже упомянуто, что исключение генерируется при развертывании приложения

   at org.apache.logging.log4j.core.appender.AbstractManager.narrow(AbstractManager.java:162)
   at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:188)
   at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:145)
   at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:61)
   at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:123)
   at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:959)
   at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:899)
   at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:891)
   at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:514)
   at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:238)
   at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:250)
   at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:547)
   at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:619)
   at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:636)
   at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231)
   at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)
   at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
   at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
   at org.apache.commons.logging.LogAdapter$Log4jLog.<clinit>(LogAdapter.java:135)
   at org.apache.commons.logging.LogAdapter$Log4jAdapter.createLog(LogAdapter.java:102)
   at org.apache.commons.logging.LogAdapter.createLog(LogAdapter.java:79)
   at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:67)
   at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:59)
   at org.springframework.boot.SpringApplication.<clinit>(SpringApplication.java:194)
   at com.app.UIApplication.main(UIApplication.java:14)

2019-01-14 02:23:32,021 main ERROR Null object returned for RollingFile in Appenders.
2019-01-14 02:23:32,031 main ERROR Unable to locate appender "RollingFile_Appender" for logger config "com.app"
2019-01-14 02:23:32,676 main ERROR Could not create plugin of type class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile org.apache.logging.log4j.core.config.ConfigurationException: Configuration has multiple incompatible Appenders pointing to the same resource '../logs/app.log'
   at org.apache.logging.log4j.core.appender.AbstractManager.narrow(AbstractManager.java:162)
   at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:188)
   at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:145)
   at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:61)
   at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:123)
   at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:959)
   at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:899)
   at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:891)
   at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:514)
   at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:238)
   at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:250)
   at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:547)
   at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:619)
   at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:636)
   at org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.reinitialize(Log4J2LoggingSystem.java:193)
   at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:75)
   at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:60)
   at org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.initialize(Log4J2LoggingSystem.java:147)
   at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:293)
   at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:266)
   at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:229)
   at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:202)
   at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
   at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
   at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
   at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
   at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:75)
   at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
   at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:347)
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:306)
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
   at com.app.UIApplication.main(UIApplication.java:14)

2019-01-14 02:23:32,685 main ERROR Null object returned for RollingFile in Appenders.
2019-01-14 02:23:32,693 main ERROR Unable to locate appender "RollingFile_Appender" for logger config "com.app"```


1 Ответ

0 голосов
/ 14 января 2019

Я думаю, что трассировка стека очень ясна: org.apache.logging.log4j.core.config.ConfigurationException: Configuration has multiple incompatible Appenders pointing to the same resource '../logs/app.log'

Оба ваших приложения используют один и тот же файл и похоже, что log4j не поддерживает его.

Вам нужно изменить файл YAML, чтобы использовать другие файлы. Например:

File:
    name: File_Appender
    fileName: ../${log-path}/file.log
    PatternLayout:
    pattern: "[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"

RollingFile:
    name: RollingFile_Appender
    fileName: ../${log-path}/app.log
    filePattern: "../${log-path}/log/app.log.%d{yyyy-MM-dd-hh-mm}.gz"
    PatternLayout:
      pattern: "[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"
    Policies:
      SizeBasedTriggeringPolicy:
        size: 5000 KB
    DefaultRollOverStrategy:
      max: 30
...