在CentOS系统上,使用Golang进行日志轮转可以通过多种方式实现。以下是两种常见的方法:
安装第三方日志库:
你可以使用logrus或zap等流行的日志库,它们都支持日志轮转。
go get github.com/sirupsen/logrus
配置日志轮转:
使用logrus的SetReportHook方法来设置日志轮转钩子。
package main
import (
"github.com/sirupsen/logrus"
"gopkg.in/natefinch/lumberjack.v2"
)
func main() {
log := logrus.New()
// 设置日志轮转配置
log.SetReportHook(&lumberjack.Logger{
Filename: "/var/log/myapp.log",
MaxSize: 10, // 单个日志文件最大大小(MB)
MaxBackups: 3, // 最多保留的旧日志文件数量
MaxAge: 28, // 最多保留的旧日志文件天数
Compress: true, // 是否压缩旧日志文件
})
log.Info("This is an info message")
}
使用logrotate工具:
logrotate是Linux系统中用于管理日志文件的工具,可以自动轮转、压缩和删除旧日志文件。
配置logrotate:
创建一个logrotate配置文件,例如/etc/logrotate.d/myapp。
/var/log/myapp.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 640 root root
}
这个配置文件的意思是:
重启logrotate服务:
确保logrotate服务正在运行并应用新的配置。
sudo systemctl restart logrotate
根据你的具体需求选择合适的方法即可。