coai/admin/logger.go
2024-01-14 12:11:59 +08:00

50 lines
862 B
Go

package admin
import (
"chat/globals"
"chat/utils"
"fmt"
"github.com/gin-gonic/gin"
"strings"
)
type LogFile struct {
Path string `json:"path"`
Size int64 `json:"size"`
}
func ListLogs() []LogFile {
return utils.Each(utils.Walk("logs"), func(path string) LogFile {
return LogFile{
Path: strings.TrimLeft(path, "logs/"),
Size: utils.GetFileSize(path),
}
})
}
func getLogPath(path string) string {
return fmt.Sprintf("logs/%s", path)
}
func getBlobFile(c *gin.Context, path string) {
c.File(getLogPath(path))
}
func deleteLogFile(path string) error {
return utils.DeleteFile(getLogPath(path))
}
func getLatestLogs(n int) string {
if n <= 0 {
n = 100
}
content, err := utils.ReadFileLatestLines(getLogPath(globals.DefaultLoggerFile), n)
if err != nil {
return fmt.Sprintf("read error: %s", err.Error())
}
return content
}