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

Quarkus KeyValueStructuredArgument配置无效,如何解决?

解决Quarkus日志JSON格式化中kv参数未生效的问题

你在使用Quarkiverse的logging-json扩展输出JSON日志时,调用kv()结构化参数后,日志却只输出了该方法的toString()结果,没有生成包含自定义键值对的预期JSON结构。

解决步骤:

  • 确认依赖配置
    确保项目依赖中正确引入了logging-json扩展,版本要和你的Quarkus版本匹配:
    Maven示例:

    <dependency>
        <groupId>io.quarkiverse.loggingjson</groupId>
        <artifactId>quarkus-logging-json</artifactId>
    </dependency>
    
  • 启用JSON日志格式化
    在application.properties里配置日志输出格式为JSON:

    # 控制台日志用JSON格式
    quarkus.log.console.format=json
    # 若有文件日志,同样配置
    quarkus.log.file.format=json
    
  • 检查日志级别与上下文
    确保INFO级别日志未被过滤,且日志上下文没有被其他非JSON格式化器覆盖。

  • 排查依赖冲突
    如果项目里还引入了其他日志扩展(如logging-gelf),可能会和logging-json冲突,导致JSON格式化失效,需要清理冲突依赖。

  • 升级兼容版本
    旧版本的logging-json可能存在参数解析bug,建议升级到与Quarkus主版本匹配的最新稳定版。

验证示例

配置完成后重新运行项目,执行你的日志代码:

import static io.quarkiverse.loggingjson.providers.KeyValueStructuredArgument.kv;

LOG.info("Some Error!", kv("key", "value"));

即可得到包含自定义键值对的JSON日志:

{
  "message": "Some Error!",
  "key": "value",
  "timestamp": "2024-05-20T12:34:56.789Z",
  "level": "INFO"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 14:24:19