node build fixed
This commit is contained in:
83
seanime-2.9.10/internal/core/logging.go
Normal file
83
seanime-2.9.10/internal/core/logging.go
Normal file
@@ -0,0 +1,83 @@
|
||||
package core
|
||||
|
||||
import (
|
||||
"github.com/rs/zerolog"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TrimLogEntries(dir string, logger *zerolog.Logger) {
|
||||
// Get all log files in the directory
|
||||
entries, err := os.ReadDir(dir)
|
||||
if err != nil {
|
||||
logger.Error().Err(err).Msg("core: Failed to read log directory")
|
||||
return
|
||||
}
|
||||
|
||||
// Get the total size of all log entries
|
||||
var totalSize int64
|
||||
for _, file := range entries {
|
||||
if file.IsDir() {
|
||||
continue
|
||||
}
|
||||
info, err := file.Info()
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
totalSize += info.Size()
|
||||
}
|
||||
|
||||
var files []os.FileInfo
|
||||
for _, entry := range entries {
|
||||
if entry.IsDir() {
|
||||
continue
|
||||
}
|
||||
info, err := entry.Info()
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
files = append(files, info)
|
||||
}
|
||||
|
||||
var serverLogFiles []os.FileInfo
|
||||
var scanLogFiles []os.FileInfo
|
||||
|
||||
for _, file := range files {
|
||||
if strings.HasPrefix(file.Name(), "seanime-") {
|
||||
serverLogFiles = append(serverLogFiles, file)
|
||||
} else if strings.Contains(file.Name(), "-scan") {
|
||||
scanLogFiles = append(scanLogFiles, file)
|
||||
}
|
||||
}
|
||||
|
||||
for _, _files := range [][]os.FileInfo{serverLogFiles, scanLogFiles} {
|
||||
files := _files
|
||||
if len(files) <= 1 {
|
||||
continue
|
||||
}
|
||||
|
||||
// Sort from newest to oldest
|
||||
sort.Slice(files, func(i, j int) bool {
|
||||
return files[i].ModTime().After(files[j].ModTime())
|
||||
})
|
||||
|
||||
// Delete all log files older than 14 days
|
||||
deleted := 0
|
||||
for i := 1; i < len(files); i++ {
|
||||
if time.Since(files[i].ModTime()) > 14*24*time.Hour {
|
||||
err := os.Remove(filepath.Join(dir, files[i].Name()))
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
deleted++
|
||||
}
|
||||
}
|
||||
if deleted > 0 {
|
||||
logger.Info().Msgf("app: Deleted %d log files older than 14 days", deleted)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user