fix: replace standard log with structured logger in main and recovery middleware

This PR continues the migration to structured logging by replacing the
standard Go log package usage with the project's structured logger.

Changes:
- cmd/server/main.go: Replace all log.Printf, log.Println, log.Fatalf
  with logger.Infof, logger.Info, logger.Fatalf
- internal/middleware/recovery.go: Replace log.Printf with
  logger.ErrorWithFields for better panic logging with structured data
- Remove log.SetFlags and log.SetOutput from main.go as they're no
  longer needed with the structured logger

Benefits:
- Consistent logging format across the entire application
- Better log parsing and analysis with structured fields
- Request ID tracking in recovery middleware for easier debugging
- Proper integration with the project's logging configuration

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
hobostay
2026-02-06 14:16:25 +08:00
committed by lyingbug
parent 84086f55de
commit a39c9dab9b
2 changed files with 17 additions and 16 deletions
+8 -12
View File
@@ -25,7 +25,6 @@ package main
import (
"context"
"fmt"
"log"
"net/http"
"os"
"os/signal"
@@ -36,16 +35,13 @@ import (
"github.com/Tencent/WeKnora/internal/config"
"github.com/Tencent/WeKnora/internal/container"
"github.com/Tencent/WeKnora/internal/logger"
"github.com/Tencent/WeKnora/internal/runtime"
"github.com/Tencent/WeKnora/internal/tracing"
"github.com/Tencent/WeKnora/internal/types/interfaces"
)
func main() {
// Set log format with request ID
log.SetFlags(log.LstdFlags | log.Lmicroseconds | log.Lshortfile)
log.SetOutput(os.Stdout)
// Set Gin mode
if os.Getenv("GIN_MODE") == "release" {
gin.SetMode(gin.ReleaseMode)
@@ -87,29 +83,29 @@ func main() {
signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM, syscall.SIGHUP)
go func() {
sig := <-signals
log.Printf("Received signal: %v, starting server shutdown...", sig)
logger.Infof(context.Background(), "Received signal: %v, starting server shutdown...", sig)
// Create a context with timeout for server shutdown
shutdownCtx, shutdownCancel := context.WithTimeout(context.Background(), 30*time.Second)
defer shutdownCancel()
if err := server.Shutdown(shutdownCtx); err != nil {
log.Fatalf("Server forced to shutdown: %v", err)
logger.Fatalf(context.Background(), "Server forced to shutdown: %v", err)
}
// Clean up all registered resources
log.Println("Cleaning up resources...")
logger.Info(context.Background(), "Cleaning up resources...")
errs := resourceCleaner.Cleanup(cleanupCtx)
if len(errs) > 0 {
log.Printf("Errors occurred during resource cleanup: %v", errs)
logger.Errorf(context.Background(), "Errors occurred during resource cleanup: %v", errs)
}
log.Println("Server has exited")
logger.Info(context.Background(), "Server has exited")
done()
}()
// Start server
log.Printf("Server is running at %s:%d", cfg.Server.Host, cfg.Server.Port)
logger.Infof(context.Background(), "Server is running at %s:%d", cfg.Server.Host, cfg.Server.Port)
if err := server.ListenAndServe(); err != nil && err != http.ErrServerClosed {
return fmt.Errorf("failed to start server: %v", err)
}
@@ -119,6 +115,6 @@ func main() {
return nil
})
if err != nil {
log.Fatalf("Failed to run application: %v", err)
logger.Fatalf(context.Background(), "Failed to run application: %v", err)
}
}
+9 -4
View File
@@ -2,9 +2,10 @@ package middleware
import (
"fmt"
"log"
"runtime/debug"
"github.com/sirupsen/logrus"
"github.com/Tencent/WeKnora/internal/logger"
"github.com/gin-gonic/gin"
)
@@ -13,13 +14,17 @@ func Recovery() gin.HandlerFunc {
return func(c *gin.Context) {
defer func() {
if err := recover(); err != nil {
// Get request ID
// Get request ID from context
ctx := c.Request.Context()
requestID, _ := c.Get("RequestID")
// Print stacktrace
stacktrace := debug.Stack()
// Log error
log.Printf("[PANIC] %s | %v | %s", requestID, err, stacktrace)
// Log error with structured logger
logger.ErrorWithFields(ctx, fmt.Errorf("panic: %v", err), logrus.Fields{
"request_id": requestID,
"stacktrace": string(stacktrace),
})
// 返回500错误
c.AbortWithStatusJSON(500, gin.H{