0
如何配置uber/zap记录器api以将日志追加到指定的文件路径。它可以像滚动文件appender(基于文件大小或日期)工作而不影响性能?如何为滚动文件系统日志配置uber/zap记录器
如何配置uber/zap记录器api以将日志追加到指定的文件路径。它可以像滚动文件appender(基于文件大小或日期)工作而不影响性能?如何为滚动文件系统日志配置uber/zap记录器
可以将挂钩添加到zap记录器,该记录器将条目写入lumberjack(Go的滚动日志)。
一个简单的用法是这样的:
滚动日志:
// remember to call this at app (or scope) exit:
// logger.Close()
var lumlog = &lumberjack.Logger{
Filename: "/tmp/my-zap.log",
MaxSize: 10, // megabytes
MaxBackups: 3, // number of log files
MaxAge: 3, // days
}
的zap
兼容钩:
func lumberjackZapHook(e zapcore.Entry) error {
lumlog.Write([]byte(fmt.Sprintf("%+v", e)))
return nil
}
而且使用它像:
logger, _ := zap.NewProduction(zap.Hooks(lumberjackZapHook))
编辑1:我不确定这是否满足您的性能要求。那里有很多因素。例如,使用SSD硬盘会产生很大的差异,甚至可以使用批量写入功能登录某些时间序列数据库。
编辑2:在zap documentation也是,它使用伐木工(但不作为钩子)。
你在做什么?你的应用程序如何运行?你现在如何记录? – captncraig
我通常建议应用程序登录到stdout/stderr,并将syslog或其他工具重定向到循环日志文件。 – captncraig