Golang 日志文件大小控制:超过 1M 自动删除
以下是一个示例代码,用于判断日志文件是否大于 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函数创建一个新的日志记录器,继续写入日志。
原文地址: https://www.cveoy.top/t/topic/qDwC 著作权归作者所有。请勿转载和采集!