如何在GCP Logging中保留日志原有大小写,避免内容被自动转全小写
问题解决思路
根因说明
日志内容自动转小写问题,大概率是Ruby GCP日志SDK或者自定义日志格式化器的默认规则导致:低版本google-cloud-logging gem默认会对结构化日志的字段、内容做小写归一处理,部分自定义封装的Logger(比如你用的DesLogger)也可能内置了日志内容小写转换的逻辑。
可行解决方法
- 优先升级
google-cloud-logginggem到3.0及以上版本,同时添加如下配置关闭自动小写规则:Google::Cloud::Logging.configure do |config| # 关闭错误字段自动小写 config.lowercase_error_fields = false # 关闭所有日志字段自动小写 config.lowercase_all_fields = false end - 检查DesLogger的自定义格式化逻辑,搜索代码中是否存在对日志内容调用
.downcase方法的逻辑,删除对应转换代码即可保留原始大小写。 - 临时修复方案:写入Base64内容前,先对Base64字符串做一次十六进制编码,输出全小写的十六进制字符串后再写入日志,读取时先转十六进制回原始字符串再做Base64解码,无需修改日志组件配置即可解决大小写敏感问题。
- 如果是GCP日志导出后出现小写问题,检查GCP控制台中Logging的导出Sink配置,是否配置了字段转换的处理规则,删除对应的小写转换操作即可。
内容的提问来源于stack exchange,提问作者Margo Chou
相关产品推荐
相关产品推荐

