mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-07 18:50:26 +08:00
修复审计日志无法自动清理的Bug
This commit is contained in:
@@ -33,7 +33,7 @@ func init() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建管理员日志
|
// CreateLog 创建管理员日志
|
||||||
func (this *LogDAO) CreateLog(tx *dbs.Tx, adminType string, adminId int64, level string, description string, action string, ip string) error {
|
func (this *LogDAO) CreateLog(tx *dbs.Tx, adminType string, adminId int64, level string, description string, action string, ip string) error {
|
||||||
op := NewLogOperator()
|
op := NewLogOperator()
|
||||||
op.Level = level
|
op.Level = level
|
||||||
@@ -57,7 +57,7 @@ func (this *LogDAO) CreateLog(tx *dbs.Tx, adminType string, adminId int64, level
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 计算所有日志数量
|
// CountLogs 计算所有日志数量
|
||||||
func (this *LogDAO) CountLogs(tx *dbs.Tx, dayFrom string, dayTo string, keyword string, userType string) (int64, error) {
|
func (this *LogDAO) CountLogs(tx *dbs.Tx, dayFrom string, dayTo string, keyword string, userType string) (int64, error) {
|
||||||
dayFrom = this.formatDay(dayFrom)
|
dayFrom = this.formatDay(dayFrom)
|
||||||
dayTo = this.formatDay(dayTo)
|
dayTo = this.formatDay(dayTo)
|
||||||
@@ -86,7 +86,7 @@ func (this *LogDAO) CountLogs(tx *dbs.Tx, dayFrom string, dayTo string, keyword
|
|||||||
return query.Count()
|
return query.Count()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 列出单页日志
|
// ListLogs 列出单页日志
|
||||||
func (this *LogDAO) ListLogs(tx *dbs.Tx, offset int64, size int64, dayFrom string, dayTo string, keyword string, userType string) (result []*Log, err error) {
|
func (this *LogDAO) ListLogs(tx *dbs.Tx, offset int64, size int64, dayFrom string, dayTo string, keyword string, userType string) (result []*Log, err error) {
|
||||||
dayFrom = this.formatDay(dayFrom)
|
dayFrom = this.formatDay(dayFrom)
|
||||||
dayTo = this.formatDay(dayTo)
|
dayTo = this.formatDay(dayTo)
|
||||||
@@ -120,7 +120,7 @@ func (this *LogDAO) ListLogs(tx *dbs.Tx, offset int64, size int64, dayFrom strin
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 物理删除日志
|
// DeleteLogPermanently 物理删除日志
|
||||||
func (this *LogDAO) DeleteLogPermanently(tx *dbs.Tx, logId int64) error {
|
func (this *LogDAO) DeleteLogPermanently(tx *dbs.Tx, logId int64) error {
|
||||||
if logId <= 0 {
|
if logId <= 0 {
|
||||||
return errors.New("invalid logId")
|
return errors.New("invalid logId")
|
||||||
@@ -129,14 +129,14 @@ func (this *LogDAO) DeleteLogPermanently(tx *dbs.Tx, logId int64) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 物理删除所有日志
|
// DeleteAllLogsPermanently 物理删除所有日志
|
||||||
func (this *LogDAO) DeleteAllLogsPermanently(tx *dbs.Tx) error {
|
func (this *LogDAO) DeleteAllLogsPermanently(tx *dbs.Tx) error {
|
||||||
_, err := this.Query(tx).
|
_, err := this.Query(tx).
|
||||||
Delete()
|
Delete()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 物理删除某些天之前的日志
|
// DeleteLogsPermanentlyBeforeDays 物理删除某些天之前的日志
|
||||||
func (this *LogDAO) DeleteLogsPermanentlyBeforeDays(tx *dbs.Tx, days int) error {
|
func (this *LogDAO) DeleteLogsPermanentlyBeforeDays(tx *dbs.Tx, days int) error {
|
||||||
if days <= 0 {
|
if days <= 0 {
|
||||||
days = 0
|
days = 0
|
||||||
@@ -148,7 +148,7 @@ func (this *LogDAO) DeleteLogsPermanentlyBeforeDays(tx *dbs.Tx, days int) error
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 计算当前日志容量大小
|
// SumLogsSize 计算当前日志容量大小
|
||||||
func (this *LogDAO) SumLogsSize() (int64, error) {
|
func (this *LogDAO) SumLogsSize() (int64, error) {
|
||||||
col, err := this.Instance.FindCol(0, "SELECT DATA_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA=? AND TABLE_NAME=? LIMIT 1", this.Instance.Name(), this.Table)
|
col, err := this.Instance.FindCol(0, "SELECT DATA_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA=? AND TABLE_NAME=? LIMIT 1", this.Instance.Name(), this.Table)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -38,34 +38,17 @@ func (this *LogTask) Run() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *LogTask) runClean() {
|
func (this *LogTask) runClean() {
|
||||||
ticker := utils.NewTicker(24 * time.Hour)
|
var ticker = utils.NewTicker(24 * time.Hour)
|
||||||
for ticker.Wait() {
|
for ticker.Wait() {
|
||||||
err := this.loopClean(86400)
|
err := this.loopClean()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logs.Println("[TASK][LOG]" + err.Error())
|
logs.Println("[TASK][LOG]" + err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *LogTask) loopClean(seconds int64) error {
|
func (this *LogTask) loopClean() error {
|
||||||
// 检查上次运行时间,防止重复运行
|
var configKey = "adminLogConfig"
|
||||||
settingKey := "logTaskCleanLoop"
|
|
||||||
timestamp := time.Now().Unix()
|
|
||||||
c, err := models.SharedSysSettingDAO.CompareInt64Setting(nil, settingKey, timestamp-seconds)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if c > 0 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// 记录时间
|
|
||||||
err = models.SharedSysSettingDAO.UpdateSetting(nil, settingKey, []byte(numberutils.FormatInt64(timestamp)))
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
configKey := "adminLogConfig"
|
|
||||||
valueJSON, err := models.SharedSysSettingDAO.ReadSetting(nil, configKey)
|
valueJSON, err := models.SharedSysSettingDAO.ReadSetting(nil, configKey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -74,7 +57,7 @@ func (this *LogTask) loopClean(seconds int64) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
config := &systemconfigs.LogConfig{}
|
var config = &systemconfigs.LogConfig{}
|
||||||
err = json.Unmarshal(valueJSON, config)
|
err = json.Unmarshal(valueJSON, config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -89,7 +72,7 @@ func (this *LogTask) loopClean(seconds int64) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *LogTask) runMonitor() {
|
func (this *LogTask) runMonitor() {
|
||||||
ticker := utils.NewTicker(1 * time.Minute)
|
var ticker = utils.NewTicker(1 * time.Minute)
|
||||||
for ticker.Wait() {
|
for ticker.Wait() {
|
||||||
err := this.loopMonitor(60)
|
err := this.loopMonitor(60)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -100,8 +83,8 @@ func (this *LogTask) runMonitor() {
|
|||||||
|
|
||||||
func (this *LogTask) loopMonitor(seconds int64) error {
|
func (this *LogTask) loopMonitor(seconds int64) error {
|
||||||
// 检查上次运行时间,防止重复运行
|
// 检查上次运行时间,防止重复运行
|
||||||
settingKey := "logTaskMonitorLoop"
|
var settingKey = "logTaskMonitorLoop"
|
||||||
timestamp := time.Now().Unix()
|
var timestamp = time.Now().Unix()
|
||||||
c, err := models.SharedSysSettingDAO.CompareInt64Setting(nil, settingKey, timestamp-seconds)
|
c, err := models.SharedSysSettingDAO.CompareInt64Setting(nil, settingKey, timestamp-seconds)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -116,7 +99,7 @@ func (this *LogTask) loopMonitor(seconds int64) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
configKey := "adminLogConfig"
|
var configKey = "adminLogConfig"
|
||||||
valueJSON, err := models.SharedSysSettingDAO.ReadSetting(nil, configKey)
|
valueJSON, err := models.SharedSysSettingDAO.ReadSetting(nil, configKey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -125,7 +108,7 @@ func (this *LogTask) loopMonitor(seconds int64) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
config := &systemconfigs.LogConfig{}
|
var config = &systemconfigs.LogConfig{}
|
||||||
err = json.Unmarshal(valueJSON, config)
|
err = json.Unmarshal(valueJSON, config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
Reference in New Issue
Block a user