如何在Dropwizard中通过环境变量动态控制JSON日志启用?
用环境变量动态切换Dropwizard日志布局
直接借助Dropwizard原生支持的环境变量插值语法就能实现需求,具体操作如下:
- 修改你的YAML配置文件,把日志布局的
type字段替换为带默认值的环境变量占位符:
logging: appenders: - type: console layout: type: ${LOG_LAYOUT_TYPE:console}
这里${LOG_LAYOUT_TYPE:console}的逻辑是:如果环境变量LOG_LAYOUT_TYPE存在,就使用它的值;如果不存在,默认用console格式(本地开发常用的普通文本日志)。
生产环境运行时,通过环境变量指定为
json格式即可:
Linux/macOS终端启动命令:LOG_LAYOUT_TYPE=json java -jar your-dropwizard-app.jar server config.ymlWindows CMD启动命令:
set LOG_LAYOUT_TYPE=json && java -jar your-dropwizard-app.jar server config.yml本地运行时,直接启动应用就行,不用设置这个环境变量,配置会自动使用默认的
console布局,禁用JSON日志。
如果偏好用开关类变量控制,也可以这么写配置:
logging: appenders: - type: console layout: type: ${ENABLE_JSON_LOG:false} ? 'json' : 'console'
生产环境设置ENABLE_JSON_LOG=true即可启用JSON日志,本地不设置则默认用普通文本布局。
内容的提问来源于stack exchange,提问作者cambunctious
相关产品推荐
相关产品推荐

