在CentOS上設置Golang日志輪轉,你可以使用第三方庫,例如lumberjack
,或者使用系統自帶的logrotate
工具。下面是兩種方法的詳細步驟:
方法一:使用lumberjack
庫
lumberjack
庫:go get github.com/natefinch/lumberjack
lumberjack
庫并設置日志輪轉:package main
import (
"log"
"github.com/natefinch/lumberjack"
)
func main() {
log.SetOutput(&lumberjack.Logger{
Filename: "/var/log/myapp.log", // 日志文件路徑
MaxSize: 10, // 每個日志文件的最大尺寸(單位:MB)
MaxBackups: 3, // 保留的最大日志文件數量
MaxAge: 28, // 保留的最大日志文件天數
Compress: true, // 是否壓縮舊的日志文件
})
log.Println("This is a log message.")
}
lumberjack
會自動進行日志輪轉。方法二:使用系統自帶的logrotate
工具
logrotate
配置文件,例如/etc/logrotate.d/myapp
:sudo vi /etc/logrotate.d/myapp
/var/log/myapp.log {
daily
rotate 7
compress
missingok
notifempty
create 640 root root
}
這個配置表示每天輪轉一次日志文件,保留最近7天的日志文件,并對舊的日志文件進行壓縮。
logrotate
服務已啟用并運行:sudo systemctl enable logrotate
sudo systemctl start logrotate
/var/log/myapp.log
文件:package main
import (
"log"
)
func main() {
log.SetOutput("/var/log/myapp.log")
log.Println("This is a log message.")
}
logrotate
會按照配置文件的設置自動進行日志輪轉。這兩種方法都可以實現在CentOS上設置Golang日志輪轉。你可以根據自己的需求選擇合適的方法。