CentOS下Golang日志管理方法如下:
log
:轻量级,适合简单场景。logrus
、zap
、zerolog
):支持结构化日志、日志级别控制、输出格式化等,适合复杂项目。go get
命令安装,例如go get github.com/sirupsen/logrus
。logrus
输出到文件):file, _ := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
logrus.SetOutput(file)
logrus.SetLevel(logrus.InfoLevel)
logrus.Info("日志信息")
lumberjack
库实现日志文件按大小、天数轮转及压缩。logWriter := &lumberjack.Logger{
Filename: "app.log",
MaxSize: 10, // MB
MaxBackups: 3,
MaxAge: 7, // 天
Compress: true,
}
logrus.SetOutput(logWriter)
rsyslog
或journalctl
收集Golang应用日志,需在应用中配置输出到系统日志(如使用log/syslog
库)。rsyslog
规则将特定应用日志存储到独立文件,例如:# /etc/rsyslog.d/app.conf
if $programname == 'myapp' then /var/log/myapp.log
& stop
logrotate
工具定期清理和归档日志文件。参考来源: