ch.qos.logback.core.joran.spi.Interpreter 中出现错误 - [maxHistory] 没有适用的操作

问题描述 投票:0回答:1

在我的应用程序中使用 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.xml:

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,应用程序运行良好。

spring-boot logging logback spring-boot-maven-plugin spring-logback
1个回答
1
投票

按如下方式编辑您的

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>
© www.soinside.com 2019 - 2024. All rights reserved.