diff --git a/internal/db/models/node_log_dao.go b/internal/db/models/node_log_dao.go index edd5e272..8b25e82f 100644 --- a/internal/db/models/node_log_dao.go +++ b/internal/db/models/node_log_dao.go @@ -80,6 +80,21 @@ func (this *NodeLogDAO) CreateLog(tx *dbs.Tx, nodeRole nodeconfigs.NodeRole, nod return err } +// DeleteExpiredLogsWithLevel 清除超出一定日期的某级别日志 +func (this *NodeLogDAO) DeleteExpiredLogsWithLevel(tx *dbs.Tx, level string, days int) error { + if days <= 0 { + return errors.New("invalid days '" + strconv.Itoa(days) + "'") + } + date := time.Now().AddDate(0, 0, -days) + expireDay := timeutil.Format("Ymd", date) + _, err := this.Query(tx). + Attr("level", level). + Where("day<=:day"). + Param("day", expireDay). + Delete() + return err +} + // DeleteExpiredLogs 清除超出一定日期的日志 func (this *NodeLogDAO) DeleteExpiredLogs(tx *dbs.Tx, days int) error { if days <= 0 { diff --git a/internal/tasks/node_log_cleaner_task.go b/internal/tasks/node_log_cleaner_task.go index 4e83ac6f..f58185f7 100644 --- a/internal/tasks/node_log_cleaner_task.go +++ b/internal/tasks/node_log_cleaner_task.go @@ -13,7 +13,7 @@ func init() { }) } -// 清理节点日志的工具 +// NodeLogCleanerTask 清理节点日志的任务 type NodeLogCleanerTask struct { duration time.Duration } @@ -35,6 +35,12 @@ func (this *NodeLogCleanerTask) Start() { } func (this *NodeLogCleanerTask) loop() error { - // TODO 30天这个数值改成可以设置 - return models.SharedNodeLogDAO.DeleteExpiredLogs(nil, 30) + // 删除7天以前的info日志 + err := models.SharedNodeLogDAO.DeleteExpiredLogsWithLevel(nil, "info", 7) + if err != nil { + return err + } + + // TODO 14天这个数值改成可以设置 + return models.SharedNodeLogDAO.DeleteExpiredLogs(nil, 14) }