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

Quarkus使用Log4J2作为日志实现时log4j2.yml配置被忽略如何解决

Quarkus 生效 log4j2.yml 配置解决方案

你当前已引入的org.jboss.logmanager:log4j2-jboss-logmanager和org.jboss.logmanager:slf4j-jboss-logmanager依赖是正确的基础,仅需补充以下配置即可让src/main/resources/log4j2.yml直接生效,无需通过application.properties配置日志规则。

  • 补充Log4j2 YAML格式解析依赖
    Log4j2默认不内置YAML配置文件的解析能力,需根据项目包管理工具引入对应依赖:
    Maven配置:
    <dependencies>
      <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-core</artifactId>
          <version>2.20.0</version>
      </dependency>
      <dependency>
          <groupId>com.fasterxml.jackson.dataformat</groupId>
          <artifactId>jackson-dataformat-yaml</artifactId>
          <version>2.15.2</version>
      </dependency>
    </dependencies>
    
    Gradle配置:
    dependencies {
      implementation 'org.apache.logging.log4j:log4j-core:2.20.0'
      implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2'
    }
    
  • 添加启动参数禁用Quarkus默认日志接管
    在JVM启动参数中加入以下两个配置,让Quarkus优先读取Log4j2配置文件:
    -Dquarkus.log.manager=false
    -Dlog4j2.configurationFile=log4j2.yml
    
    本地IDE启动时添加到VM options即可,打包后运行示例命令:
    java -Dquarkus.log.manager=false -Dlog4j2.configurationFile=log4j2.yml -jar your-quarkus-app-runner.jar
  • 验证配置生效
    可在log4j2.yml中配置自定义日志格式或文件输出规则,启动应用后查看输出是否匹配配置即可。

特殊说明:如果需要打包为GraalVM原生镜像,仅需在application.properties中添加原生构建参数quarkus.native.additional-build-args=-H:Log4j2Configuration=log4j2.yml即可,无需添加其他日志相关配置。

内容的提问来源于stack exchange,提问作者Marcel Stör

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 16:21:01