如何在Keycloak 20中配置Quarkus日志JSON附加字段
解决Keycloak 20.0.3 JSON日志添加固定键值对的问题
核心前提:先启用JSON日志格式
你的配置未生效的首要原因是Keycloak默认未开启JSON日志输出,必须先启用该功能,额外字段配置才会生效。
有效配置方案(任选其一)
1. 通过quarkus.properties配置
在挂载的quarkus.properties文件中添加以下内容:
# 启用JSON日志格式 quarkus.log.handler.console.formatter=json # 添加固定键值对foo=bar quarkus.log.json.additional-field."foo".value=bar
2. 通过docker-compose环境变量配置
修改docker-compose.yml的environment字段:
services: keycloak: image: quay.io/keycloak/keycloak:20.0.3 environment: # 启用JSON日志 QUARKUS_LOG_HANDLER_CONSOLE_FORMATTER: json # 添加额外字段,注意双下划线替代原配置中的点 QUARKUS_LOG_JSON_ADDITIONAL_FIELD__FOO__VALUE: bar volumes: - ./quarkus.properties:/opt/keycloak/conf/quarkus.properties # 其他原有配置...
3. 通过JAVA_OPTS_APPEND配置
使用JVM参数同时指定日志格式和额外字段:
services: keycloak: image: quay.io/keycloak/keycloak:20.0.3 environment: JAVA_OPTS_APPEND: >- -Dquarkus.log.handler.console.formatter=json -Dquarkus.log.json.additional-field.foo.value=bar # 其他原有配置...
关键注意事项
- 环境变量转义规则:Quarkus配置中的
.在环境变量中需替换为__(双下划线),否则配置无法被识别 - 确认
quarkus.properties挂载路径正确,Keycloak 20.0.3的配置目录确实是/opt/keycloak/conf/ - 重启容器后检查控制台输出,确认日志已转为JSON格式且包含
"foo":"bar"字段
内容的提问来源于stack exchange,提问作者lathspell
相关产品推荐
相关产品推荐

