如何在VerneMQ运行日志中添加时间戳
VerneMQ日志添加时间戳配置方案
可以通过原生配置实现日志加时间戳,无需修改业务侧代码。
1. 高版本(VerneMQ 1.10及以上)原生配置方案
VerneMQ底层基于Erlang的logger系统,高版本已经开放了日志格式化的配置入口,直接修改配置文件即可:
- 打开VerneMQ的主配置文件
vernemq.conf - 如果使用控制台日志输出,添加/修改如下配置:
log.console.formatter = {time, "YYYY-MM-DD HH:mm:ss.SSS"} {level} {pid} {message} - 如果使用文件日志输出,添加/修改对应配置:
log.file.formatter = {time, "YYYY-MM-DD HH:mm:ss.SSS"} {level} {pid} {message} - 配置中的时间格式可以按需调整,修改完成后执行
vernemq restart重启服务生效,后续所有日志行都会自带标准时间戳。
2. 低版本兼容方案
如果使用的是1.10以下的旧版本,也有无需修改代码的替代方案:
- 方案一:开启syslog输出
在vernemq.conf中配置log.syslog = on,VerneMQ会把日志输出到系统syslog,syslog会自动为每一行日志追加时间戳,无需额外修改VerneMQ配置。 - 方案二:日志采集侧补时间戳
如果不想重启VerneMQ服务,可以在日志采集环节(比如用Filebeat、Rsylog、awk预处理)为每一行采集到的日志追加当前时间戳,适合线上服务不能随意重启的场景。
你之前提到的在消息体中加时间戳的临时方案完全可以被上述方案替代,零业务代码侵入,改造成本更低。
内容的提问来源于stack exchange,提问作者OlliP
相关产品推荐
相关产品推荐

