解决日志api的message字段为空的问题

This commit is contained in:
Alex Yang
2025-12-05 13:25:34 +08:00
parent f429c340fa
commit b9f32dff3b
11 changed files with 193033 additions and 70 deletions

View File

@@ -2,8 +2,10 @@ package main
import (
"fmt"
"io"
"log"
"os"
"time"
"github.com/gin-gonic/gin"
"github.com/monitor/backend/config"
@@ -34,9 +36,17 @@ func isDefaultDBConfig(cfg *config.Config) bool {
// main 函数启动服务器
func main() {
// 配置日志:只输出必要的信息,禁用调试日志
// 配置日志:同时输出到文件和标准输出
logFileName := fmt.Sprintf("monitor-backend-%s.log", time.Now().Format("2006-01-02"))
logFile, err := os.OpenFile(logFileName, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
log.Printf("Warning: Failed to open log file %s, logging only to stdout: %v", logFileName, err)
} else {
defer logFile.Close()
// 创建一个多输出写入器,同时写入文件和标准输出
log.SetOutput(io.MultiWriter(os.Stdout, logFile))
}
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
log.SetOutput(os.Stdout)
// 加载配置
cfg, err := config.LoadConfig()
@@ -96,8 +106,9 @@ func main() {
r := gin.New()
// 添加必要的中间件
r.Use(gin.Recovery())
// 禁用Gin的默认日志
r.Use(gin.LoggerWithWriter(gin.DefaultWriter, "/health"))
// 设置Gin的日志输出到文件和标准输出
ginLogger := log.New(io.MultiWriter(os.Stdout, logFile), "[GIN] ", log.Ldate|log.Ltime)
r.Use(gin.LoggerWithWriter(ginLogger.Writer()))
// 设置CORS
r.Use(func(c *gin.Context) {