在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]