在我的应用程序中使用 Spring Boot 时,启动 Spring Boot 应用程序主方法时出现以下错误。
请注意,应用程序在 kotlin 中运行,我们从一个单独的类触发 Spring Boot 启动。当我从工作区运行应用程序时,它成功运行并启动,但从打包的 jar 启动应用程序会引发此错误。
java.lang.IllegalStateException: Logback configuration error detected:
ERROR in ch.qos.logback.core.joran.spi.Interpreter@20:21 - no applicable action for [maxHistory], current ElementPath is [[configuration][appender][maxHistory]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@37:21 - no applicable action for [maxHistory], current ElementPath is [[configuration][appender][maxHistory]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@54:21 - no applicable action for [maxHistory], current ElementPath is [[configuration][appender][maxHistory]]
at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:169)
at org.springframework.boot.logging.logback.LogbackLoggingSystem.reinitialize(LogbackLoggingSystem.java:222)
at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:73)
at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:60)
at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:118)
at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:306)
at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:281)
at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:239)
at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:216)
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:80)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53)
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:345)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
无需使用弹簧靴,它就可以正常工作。我看到这个帖子了
Logback 文件错误:[配置] 没有适用的操作,当前 ElementPath 是 [[配置][配置]] 但没有帮助。
logback 中的标签造成了问题,如何解决?
<appender name="HealthRollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${app.logpath:-log}/${log.base.name}-health.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${app.logpath:-log}/${log.base.name}-health-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!-- Number of days of log files to keep -->
<maxHistory>14</maxHistory>
</appender>
我的 pom 有多个依赖项,但以下是此代码使用的一些 springboot 依赖项:
org.springframework.boot 弹簧靴 2.3.4.发布 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.3.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.3.4.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>```
<version>5.3.8</version>
</dependency>
我检查了这个论坛上的多个帖子,但似乎没有适合这种情况的解决方案。没有 springboot,应用程序运行良好。
按如下方式编辑您的
logback
文件:
<appender name="HealthRollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${app.logpath:-log}/${log.base.name}-health.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${app.logpath:-log}/${log.base.name}-health-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<!-- Number of days of log files to keep -->
<maxHistory>14</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>