溫馨提示×

如何在CentOS上設置Golang日志輪轉

小樊
38
2025-08-02 15:12:32
欄目: 編程語言

在CentOS上設置Golang日志輪轉,你可以使用第三方庫,例如lumberjack,或者使用系統自帶的logrotate工具。下面是兩種方法的詳細步驟:

方法一:使用lumberjack

  1. 首先,安裝lumberjack庫:
go get github.com/natefinch/lumberjack
  1. 在你的Golang代碼中,引入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.")
}
  1. 編譯并運行你的Golang程序。當日志文件達到指定大小時,lumberjack會自動進行日志輪轉。

方法二:使用系統自帶的logrotate工具

  1. 創建一個logrotate配置文件,例如/etc/logrotate.d/myapp
sudo vi /etc/logrotate.d/myapp
  1. 在配置文件中添加以下內容:
/var/log/myapp.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    create 640 root root
}

這個配置表示每天輪轉一次日志文件,保留最近7天的日志文件,并對舊的日志文件進行壓縮。

  1. 確保logrotate服務已啟用并運行:
sudo systemctl enable logrotate
sudo systemctl start logrotate
  1. 在你的Golang程序中,將日志輸出到/var/log/myapp.log文件:
package main

import (
	"log"
)

func main() {
	log.SetOutput("/var/log/myapp.log")
	log.Println("This is a log message.")
}
  1. 編譯并運行你的Golang程序。logrotate會按照配置文件的設置自動進行日志輪轉。

這兩種方法都可以實現在CentOS上設置Golang日志輪轉。你可以根據自己的需求選擇合適的方法。

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