Debian Golang日志如何设置自动清理策略
作者:归人云淡风轻
时间:2026-07-03
浏览:0
在Debian系统上运行Golang服务时,可使用logrus库实现日志自动清理策略:通过time.Ticker定时触发清理函数,读取日志目录中的所有文件并按修改时间排序,仅保留最新指定数量的日志文件,同时删除其他旧文件,从而避免磁盘被日志撑爆。
在Debian系统上跑Golang服务时,日志管理是个绕不开的话题——尤其是当日志文件无节制增长,最终把磁盘撑爆的时候。自动清理日志的策略,其实用`logrus`库就能优雅实现。下面是一个完整示例,直接上手就能用。
先安装`logrus`库(如果还没装的话):
```bash
go get github.com/sirupsen/logrus
```
然后创建一个`main.go`文件,把下面这段代码放进去。
```go
package main
import (
"os"
"time"
"github.com/sirupsen/logrus"
)
func main() {
// 创建日志文件
logFile, err := os.OpenFile("logs/app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
logrus.Fatal(err)
}
defer logFile.Close()
// 设置日志输出到文件
logrus.SetOutput(logFile)
// 设置日志级别
logrus.SetLevel(logrus.InfoLevel)
// 设置日志格式为文本格式(含时间戳)
logrus.SetFormatter(&logrus.TextFormatter{
FullTimestamp: true,
})
// 同时启用调用者信息
logrus.SetReportCaller(true)
// 后续可以改为JSON格式
logrus.SetFormatter(&logrus.JSONFormatter{})
logrus.WithFields(logrus.Fields{
"app_name": "my_app",
}).Info("Application started")
// 设置最大备份数量(即保留的最新日志文件个数)
maxBackupIndex := 3
// 每天执行一次清理
ticker := time.NewTicker(24 * time.Hour)
go func() {
for range ticker.C {
logrus.Info("Cleaning up old log files...")
cleanOldLogFiles(maxBackupIndex)
}
}()
// 模拟应用持续运行
select {}
}
func cleanOldLogFiles(maxBackupIndex int) {
// 读取日志目录
files, err := os.ReadDir("logs")
if err != nil {
logrus.Error(err)
return
}
// 按修改时间排序(最旧的在前)
logFiles := make([]os.FileInfo, len(files))
copy(logFiles, files)
sort.Slice(logFiles, func(i, j int) bool {
return logFiles[i].ModTime().Before(logFiles[j].ModTime())
})
// 删除超出备份数量的旧文件
for _, file := range logFiles[maxBackupIndex:] {
err := os.Remove("logs/" + file.Name())
if err != nil {
logrus.Error(err)
}
}
}
```
代码里做了几件事:创建日志文件`logs/app.log`,设置输出、级别、格式;启动一个协程,定时(每24小时)调用`cleanOldLogFiles`,读取`logs`目录下的所有文件,按修改时间排序后,保留最新的`maxBackupIndex`个文件,其余删除。
需要调整的话,直接改`maxBackupIndex`的值即可——比如想保留5个最新日志文件,就改成5;如果想更频繁地清理,把`ticker`的时间间隔改成`1*time.Hour`也行。整个过程不需要额外依赖,使用`logrus`自身的能力就能完成。简简单单,却非常实用。
本文内容来源于互联网,如有侵权请联系删除。
作者最新文章
荣耀MagicOS 11发布计划与Agent Harness架构解析
2026-09-08 19:23
AI重构企业业务架构:超聚变“智企”范式核心解析
2026-09-08 18:39
PDF合并工具怎么选?在线合并5步实操指南
2026-09-04 17:05
PDF图片压缩工具推荐与批量处理实操指南
2026-09-03 12:14
照片如何转成PDF格式?三种图片转PDF操作方法
2026-09-03 11:04
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































