以下是一个示例代码,用于判断日志文件是否大于 1MB,如果大于则删除文件,否则继续写入日志。

package main

import (
	"log"
	"os"
)

func main() {
	filePath := 'logs.txt' // 日志文件路径

	// 获取文件信息
	fileInfo, err := os.Stat(filePath)
	if err != nil {
		log.Fatal(err)
	}

	// 判断文件大小是否大于1MB
	if fileInfo.Size() > 1024*1024 { // 1MB = 1024*1024字节
		err = os.Remove(filePath) // 删除文件
		if err != nil {
			log.Fatal(err)
		}
	} else {
		// 继续写入日志
		file, err := os.OpenFile(filePath, os.O_APPEND|os.O_WRONLY, 0644)
		if err != nil {
			log.Fatal(err)
		}
		defer file.Close()

		logger := log.New(file, "", log.LstdFlags)
		logger.Println('This is a log message.')
	}
}

该示例使用os.Stat函数获取文件信息,然后使用fileInfo.Size()方法获取文件大小。如果文件大小大于1MB,则使用os.Remove函数删除文件。否则,使用os.OpenFile函数以追加写入模式打开文件,并使用log.New函数创建一个新的日志记录器,继续写入日志。

Golang 日志文件大小控制:超过 1M 自动删除

原文地址: https://www.cveoy.top/t/topic/qDwC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录