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工具定期清理和归档日志文件。参考来源: