mirror of
https://github.com/komari-monitor/komari.git
synced 2026-11-10 16:21:17 +00:00
37 lines
916 B
Go
37 lines
916 B
Go
package auditlog
|
|
|
|
import (
|
|
logger "github.com/komari-monitor/komari/utils/log"
|
|
"time"
|
|
|
|
"github.com/komari-monitor/komari/database/dbcore"
|
|
"github.com/komari-monitor/komari/database/models"
|
|
)
|
|
|
|
func Log(ip, uuid, message, msgType string) {
|
|
db := dbcore.GetDBInstance()
|
|
logEntry := &models.Log{
|
|
IP: ip,
|
|
UUID: uuid,
|
|
Message: message,
|
|
MsgType: msgType,
|
|
Time: time.Now().UTC(),
|
|
}
|
|
if err := db.Create(logEntry).Error; err != nil {
|
|
logger.Error("audit", "failed to persist audit event", "error", err, "type", msgType)
|
|
}
|
|
}
|
|
|
|
func EventLog(eventType, message string) {
|
|
Log("", "", message, eventType)
|
|
}
|
|
|
|
// Delete logs older than 30 days
|
|
func RemoveOldLogs() {
|
|
db := dbcore.GetDBInstance()
|
|
threshold := time.Now().UTC().AddDate(0, 0, -30)
|
|
if err := db.Where("time < ?", threshold).Delete(&models.Log{}).Error; err != nil {
|
|
logger.ErrorArgs("audit", "Failed to remove old logs:", err)
|
|
}
|
|
}
|