溫馨提示×

如何設置CentOS Golang日志輪轉

小樊
42
2025-10-15 09:49:47
欄目: 編程語言

在CentOS系統中,使用Golang編寫的應用程序可以通過配置日志庫來實現日志輪轉。常用的日志庫有logrus、zap等。這里以logrus為例,介紹如何設置日志輪轉。

首先,確保已經安裝了logrus庫:

go get github.com/sirupsen/logrus

接下來,創建一個名為main.go的文件,并編寫以下代碼:

package main

import (
	"github.com/sirupsen/logrus"
	"os"
	"time"
)

func main() {
	logrus.SetFormatter(&logrus.JSONFormatter{})
	logrus.SetOutput(os.Stdout)
	logrus.SetReportCaller(true)

	log := logrus.NewEntry(logrus.New())

	// 設置日志輪轉
	log.Info("Starting log rotation test...")

	for {
		log.Info("This is a test log entry")
		time.Sleep(1 * time.Second)
	}
}

現在,我們需要使用logrusSetOutput方法將日志輸出到一個支持輪轉的文件中。為此,我們可以使用lumberjack庫:

go get gopkg.in/natefinch/lumberjack.v2

然后,修改main.go文件,將日志輸出到lumberjack.Logger

package main

import (
	"github.com/sirupsen/logrus"
	"gopkg.in/natefinch/lumberjack.v2"
	"os"
	"time"
)

func main() {
	logrus.SetFormatter(&logrus.JSONFormatter{})
	logrus.SetReportCaller(true)

	log := logrus.NewEntry(logrus.New())

	// 設置日志輪轉
	log.Info("Starting log rotation test...")

	// 配置lumberjack.Logger
	lumberjackLogger := &lumberjack.Logger{
		Filename:   "/var/log/myapp.log", // 日志文件路徑
		MaxSize:    1,                        // 每個日志文件的最大大?。▎挝唬篗B)
		MaxBackups: 3,                        // 保留的最大日志文件數量
		MaxAge:     28,                       // 保留的最大日志文件天數
		Compress:   true,                     // 是否壓縮舊日志文件
	}

	logrus.SetOutput(lumberjackLogger)

	for {
		log.Info("This is a test log entry")
		time.Sleep(1 * time.Second)
	}
}

現在,運行main.go文件:

go run main.go

這將在/var/log/myapp.log文件中生成日志,并根據配置進行輪轉。你可以根據需要調整lumberjack.Logger的參數。

如果你使用的是其他日志庫,如zap,可以查找相應的輪轉日志庫并進行類似的配置。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女