From 119b82930e44650d6e180298a86ef56f5edb94c2 Mon Sep 17 00:00:00 2001 From: Yun <995116474@qq.com> Date: Wed, 26 Jun 2024 17:41:17 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=87=E6=9C=9F=E5=88=A0=E9=99=A4=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- loggerx.go | 2 ++ remove.go | 26 +++++++++++++++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/loggerx.go b/loggerx.go index 8455fd0..8fa57db 100644 --- a/loggerx.go +++ b/loggerx.go @@ -21,6 +21,7 @@ import ( // 需要实现io.Writer接口 type Logger struct { + ctx context.Context filePath *sync.Map // filePath mu *sync.Mutex option loggerOption @@ -44,6 +45,7 @@ func NewLogger(ctx context.Context, opts ...Option) *Logger { } l := &Logger{ + ctx: ctx, filePath: &sync.Map{}, mu: &sync.Mutex{}, option: opt, diff --git a/remove.go b/remove.go index ca0a4fe..9fd5b60 100644 --- a/remove.go +++ b/remove.go @@ -10,6 +10,23 @@ import ( // 监听dir文件夹的所有文件,循环查找是否有超过days天的文件,删除掉 func (l *Logger) delete() { + + tick := time.NewTicker(time.Hour) + + for { + select { + case <-tick.C: + err := l.walkAndDel() + if err != nil { + fmt.Println(err) + } + case <-l.ctx.Done(): + return + } + } +} + +func (l *Logger) walkAndDel() error { err := filepath.Walk(l.option.dir, func(path string, info os.FileInfo, err error) error { if err != nil { fmt.Println(err) @@ -38,15 +55,10 @@ func (l *Logger) delete() { return os.Remove(path) }) - if err != nil { - fmt.Println(err) - } - - // 监听文件夹,获取新加入的文件 - - + return err } +// 判断空文件夹 func isEmptyDir(path string) bool { files, err := os.ReadDir(path) if err != nil {