在Go語言中,實現日志輪轉通常使用標準庫中的log
包和第三方庫lumberjack
。下面是一個簡單的示例,展示了如何使用lumberjack
庫實現日志輪轉。
首先,確保已經安裝了lumberjack
庫。如果沒有安裝,可以使用以下命令安裝:
go get -u gopkg.in/natefinch/lumberjack.v2
接下來,創建一個名為main.go
的文件,并添加以下代碼:
package main
import (
"fmt"
"log"
"gopkg.in/natefinch/lumberjack.v2"
)
func main() {
// 設置日志文件名模板,包括時間戳、文件大小等
logFileName := "./logs/myapp-%Y-%m-%d_%H-%M-%S.log"
// 使用lumberjack.Logger進行日志輪轉
logger := log.New(lumberjack.NewLogger(logFileName, 10, 2), "", log.LstdFlags)
// 寫入日志
for i := 0; i < 10000; i++ {
logger.Println("這是一條日志信息")
}
}
在這個示例中,我們設置了日志文件名模板logFileName
,其中包括時間戳、文件大小等信息。然后,我們使用lumberjack.NewLogger
函數創建了一個lumberjack.Logger
實例,并將其傳遞給log.New
函數以創建一個新的日志記錄器。最后,我們使用logger.Println
方法寫入日志。
當你運行這個程序時,它將在logs
目錄下生成按時間戳輪轉的日志文件。例如,myapp-2022-01-01_12-00-00.log
、myapp-2022-01-01_13-00-00.log
等。