研究了一下 glogs 库,现在 3.x 版本的 nebula 使用的 glogs v0.5 版本确实不支持上面的 logcleansecs 的 flag 来控制自动清理的时间,但是代码中有提供如下的接口按天来清理过期的日志:
google::EnableLogCleaner(int overdue_days);
但是这个接口在现在的 nebula 的 log 配置相关的代码中并没有显式调用,后面可以 PR 增加这个设置。目前如果想完成日志自动清理的任务,可以启动一个 cron job 来自动清理,比如配置 crontab 增加一条:
0 0 */5 * * find /path/to/nebula/logs/dir -type f -iname 'nebula-graphd.*.log.INFO.*' -mtime +5 -delete
每5天删除修改时间5天以上的 nebula-graphd 的 INFO 日志,不过上面这样清理还是要依赖把 timestamp_in_logfile_name 和 max_log_size 打开。