在CentOS上管理Golang日志可从日志库选择、输出配置、轮转策略及系统集成等方面入手,具体如下:
选择日志库:
配置日志输出:
os.OpenFile创建文件,配合日志库的SetOutput方法指定输出目标。file, _ := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
logrus.SetOutput(file)
日志轮转管理:
lumberjack库配合日志库实现轮转,设置文件大小、备份数量及压缩等策略。logWriter := &lumberjack.Logger{
Filename: "app.log",
MaxSize: 10, // MB
MaxBackups: 3,
Compress: true,
}
logrus.SetOutput(logWriter)
系统级日志集成:
rsyslog或journalctl收集Golang应用日志,需在应用中配置输出到系统日志(如使用syslog协议)。/etc/rsyslog.d/app.conf中添加规则,将应用日志定向到指定文件。日志级别与格式:
InfoLevel、ErrorLevel),不同库的设置方式略有差异。自动化管理:
logrotate工具定期清理过期日志,避免磁盘占用。参考资料:[1,2,3,5,6,7,8,9,10,11]