jdysya 4870d2aa42 docs: 更新图标并优化日志记录功能
- 更新侧边栏和文档页面的图标
- 评论静态文件请求的日志记录功能
- 增加东八区时区支持并优化日志时间格式
2025-02-18 23:16:42 +08:00

60 lines
1.3 KiB
Go

package utils
import (
"fmt"
"io"
"os"
"path/filepath"
"time"
"github.com/sirupsen/logrus"
)
var Logger = logrus.New()
func InitLogger() {
if err := os.MkdirAll("log", 0755); err != nil {
panic(fmt.Sprintf("创建日志目录失败: %v", err))
}
logFileName := filepath.Join("log", time.Now().Format("2006-01-02")+".log")
logFile, err := os.OpenFile(logFileName, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
if err != nil {
panic(fmt.Sprintf("打开日志文件失败: %v", err))
}
Logger.SetFormatter(&logrus.JSONFormatter{})
Logger.SetOutput(io.MultiWriter(os.Stdout, logFile))
}
func LogAccess(ip, path, method string, userInfo map[string]interface{}) {
// 设置东八区时区
loc, err := time.LoadLocation("Asia/Shanghai")
if err != nil {
Logger.WithError(err).Error("Failed to load timezone")
return
}
// 获取当前时间并格式化为东八区时间,使用中国人的习惯格式
now := time.Now().In(loc)
timestamp := now.Format("2006-01-02 15:04:05")
// 构建日志字段
fields := logrus.Fields{
"ip": ip,
"path": path,
"method": method,
"timestamp": timestamp,
}
// 合并用户信息到日志字段中
if userInfo != nil {
for k, v := range userInfo {
fields[k] = v
}
}
// 记录日志
Logger.WithFields(fields).Info("Page accessed")
}