You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot启动报错:logback-spring.xml配置错误修复方案

Spring Boot启动时Logback配置错误:<properties>、<dependency>标签无对应处理动作

问题描述

使用旧版本Gradle构建Spring Boot应用,构建过程无报错,但启动时触发Logback配置错误,提示logback-spring.xml中的<properties>、<dependency>等标签无对应处理动作,IntelliJ也标记这些标签为非法。

Gradle配置文件 (build.gradle)

buildscript {
    repositories {
        mavenCentral()
    }
    /*dependencies{
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.2.1.RELEASE")
    }*/
}
plugins {
    id 'org.springframework.boot' version '2.6.2'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group 'eresult'
version '1.0-SNAPSHOT'
apply plugin: "java"
println "Gradle "+gradle.gradleVersion

jar {
    manifest {
        attributes(
                'Main-Class': 'it.eresult.Application'
        )
    }
}
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile ("org.springframework.boot:spring-boot-starter-web")
    compile group: 'com.microsoft.sqlserver', name: 'mssql-jdbc', version: '7.2.0.jre8'
    compile 'com.google.code.gson:gson:2.8.6'
}

启动报错信息

Exception in thread "main" java.lang.IllegalStateException: java.lang.IllegalStateException: Logback configuration error detected: 
    at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:80)
ERROR in ch.qos.logback.core.joran.spi.Interpreter@33:17 - no applicable action for [properties], current ElementPath  is [[configuration][properties]]
    at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:60)
ERROR in ch.qos.logback.core.joran.spi.Interpreter@34:34 - no applicable action for [spring.security.version], current ElementPath  is [[configuration][properties][spring.security.version]]
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:132)
ERROR in ch.qos.logback.core.joran.spi.Interpreter@37:17 - no applicable action for [dependency], current ElementPath  is [[configuration][dependency]]
    at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:313)
ERROR in ch.qos.logback.core.joran.spi.Interpreter@38:18 - no applicable action for [groupId], current ElementPath  is [[configuration][dependency][groupId]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@39:21 - no applicable action for [artifactId], current ElementPath  is [[configuration][dependency][artifactId]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@40:18 - no applicable action for [version], current ElementPath  is [[configuration][dependency][version]]
    ... 18 common frames omitted
ERROR in ch.qos.logback.core.joran.spi.Interpreter@42:17 - no applicable action for [dependency], current ElementPath  is [[configuration][dependency]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@43:18 - no applicable action for [groupId], current ElementPath  is [[configuration][dependency][groupId]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@44:21 - no applicable action for [artifactId], current ElementPath  is [[configuration][dependency][artifactId]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@45:18 - no applicable action for [version], current ElementPath  is [[configuration][dependency][version]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@47:17 - no applicable action for [dependency], current ElementPath  is [[configuration][dependency]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@48:18 - no applicable action for [groupId], current ElementPath  is [[configuration][dependency][groupId]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@49:21 - no applicable action for [artifactId], current ElementPath  is [[configuration][dependency][artifactId]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@50:18 - no applicable action for [version], current ElementPath  is [[configuration][dependency][version]]
    at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:328)
    at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:282)
    at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:240)
    at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:216)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131)
    at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:85)
    at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:66)
    at java.util.ArrayList.forEach(ArrayList.java:1259)
    at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:120)
    at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:114)
    at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:65)
    at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:338)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:296)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1290)
    at it.eresult.Application.main(Application.java:13)
Caused by: java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in ch.qos.logback.core.joran.spi.Interpreter@33:17 - no applicable action for [properties], current ElementPath  is [[configuration][properties]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@34:34 - no applicable action for [spring.security.version], current ElementPath  is [[configuration][properties][spring.security.version]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@37:17 - no applicable action for [dependency], current ElementPath  is [[configuration][dependency]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@38:18 - no applicable action for [groupId], current ElementPath  is [[configuration][dependency][groupId]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@39:21 - no applicable action for [artifactId], current ElementPath  is [[configuration][dependency][artifactId]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@40:18 - no applicable action for [version], current ElementPath  is [[configuration][dependency][version]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@42:17 - no applicable action for [dependency], current ElementPath  is [[configuration][dependency]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@43:18 - no applicable action for [groupId], current ElementPath  is [[configuration][dependency][groupId]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@44:21 - no applicable action for [artifactId], current ElementPath  is [[configuration][dependency][artifactId]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@45:18 - no applicable action for [version], current ElementPath  is [[configuration][dependency][version]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@47:17 - no applicable action for [dependency], current ElementPath  is [[configuration][dependency]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@48:18 - no applicable action for [groupId], current ElementPath  is [[configuration][dependency][groupId]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@49:21 - no applicable action for [artifactId], current ElementPath  is [[configuration][dependency][artifactId]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@50:18 - no applicable action for [version], current ElementPath  is [[configuration][dependency][version]]
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:179)
    at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:80)
    at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:60)
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:132)
    at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:313)
    ... 18 more

Execution failed for task ':it.eresult.Application.main()'.
> Process 'command 'C:/Users/michele.castriotta/.jdks/corretto-1.8.0_422/bin/java.exe'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

问题logback-spring.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <Pattern>.%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg %n
        </Pattern>
    </encoder>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>ALL</level>
    </filter>
</appender>
<appender name="dailyRollingFileAppender"  class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <FileNamePattern>/var/log/clean-ecg-service.%d{yyyy-MM-dd}.%i.log.gz
        </FileNamePattern>
        <maxHistory>60</maxHistory>
        <maxFileSize>50MB</maxFileSize>
    </rollingPolicy>

    <encoder>
        <Pattern>%date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX"} [%thread] %-5level %logger{35} - %msg %n
        </Pattern>
    </encoder>
</appender>

<logger name="it.eresult" level="INFO"/>

<root level="ERROR">
    <appender-ref ref="consoleAppender"/>
    <appender-ref ref="dailyRollingFileAppender"/>
</root>
</configuration>

<properties>
    <spring.security.version>3.1.4.RELEASE</spring.security.version>
</properties>

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>${spring.security.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>${spring.security.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>${spring.security.version}</version>
    </dependency>

修复方案

核心问题分析

<properties>、<dependency>是Maven pom.xml的专属语法,完全不属于Logback配置文件的合法标签,且这些标签被错误地写在了Logback的<configuration>闭合标签之后,直接破坏了XML结构,导致Logback无法解析配置。

具体修复步骤

  1. 清理Logback配置文件
    移除logback-spring.xml中所有的<properties>、<dependency>标签及内容,只保留Logback合法的配置标签(如<configuration>、<appender>、<logger>、<root>等)。

    修正后的logback-spring.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <Pattern>.%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg %n</Pattern>
            </encoder>
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>ALL</level>
            </filter>
        </appender>
        <appender name="dailyRollingFileAppender"  class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <FileNamePattern>/var/log/clean-ecg-service.%d{yyyy-MM-dd}.%i.log.gz</FileNamePattern>
                <maxHistory>60</maxHistory>
                <maxFileSize>50MB</maxFileSize>
            </rollingPolicy>
            <encoder>
                <Pattern>%date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX"} [%thread] %-5level %logger{35} - %msg %n</Pattern>
            </encoder>
        </appender>
    
        <logger name="it.eresult" level="INFO"/>
    
        <root level="ERROR">
            <appender-ref ref="consoleAppender"/>
            <appender-ref ref="dailyRollingFileAppender"/>
        </root>
    </configuration>
    
  2. 迁移依赖配置到Gradle
    如果需要添加Spring Security依赖,在build.gradle的dependencies块中添加(Spring Boot插件会自动管理版本,无需手动指定):

    dependencies {
        implementation "org.springframework.boot:spring-boot-starter-web"
        implementation group: 'com.microsoft.sqlserver', name: 'mssql-jdbc', version: '7.2.0.jre8'
        implementation 'com.google.code.gson:gson:2.8.6'
        // 添加Spring Security依赖
        implementation 'org.springframework.boot:spring-boot-starter-security'
    }
    

    注意:Gradle中compile已被废弃,推荐使用implementation替代。

  3. 重新构建并启动
    执行gradle clean build清理旧构建产物,再启动应用即可解决Logback配置错误。


内容的提问来源于stack exchange,提问作者bircastri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 23:19:51