fix: setup logger

This commit is contained in:
tbphp
2025-07-11 21:26:41 +08:00
parent f655de3cda
commit 2820cab04a
3 changed files with 53 additions and 45 deletions

View File

@@ -4,9 +4,7 @@ import (
"fmt"
"gpt-load/internal/models"
"gpt-load/internal/types"
"io"
"os"
"path/filepath"
"reflect"
"strconv"
"strings"
@@ -163,44 +161,3 @@ func GetEnvOrDefault(key, defaultValue string) string {
}
return defaultValue
}
// SetupLogger configures the logging system based on the provided configuration.
func SetupLogger(configManager types.ConfigManager) {
logConfig := configManager.GetLogConfig()
// Set log level
level, err := logrus.ParseLevel(logConfig.Level)
if err != nil {
logrus.Warn("Invalid log level, using info")
level = logrus.InfoLevel
}
logrus.SetLevel(level)
// Set log format
if logConfig.Format == "json" {
logrus.SetFormatter(&logrus.JSONFormatter{
TimestampFormat: "2006-01-02T15:04:05.000Z07:00", // ISO 8601 format
})
} else {
logrus.SetFormatter(&logrus.TextFormatter{
ForceColors: true,
FullTimestamp: true,
TimestampFormat: "2006-01-02 15:04:05",
})
}
// Setup file logging if enabled
if logConfig.EnableFile {
logDir := filepath.Dir(logConfig.FilePath)
if err := os.MkdirAll(logDir, 0755); err != nil {
logrus.Warnf("Failed to create log directory: %v", err)
} else {
logFile, err := os.OpenFile(logConfig.FilePath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
logrus.Warnf("Failed to open log file: %v", err)
} else {
logrus.SetOutput(io.MultiWriter(os.Stdout, logFile))
}
}
}
}

View File

@@ -0,0 +1,51 @@
package utils
import (
"gpt-load/internal/types"
"io"
"os"
"path/filepath"
"github.com/sirupsen/logrus"
)
// SetupLogger configures the logging system based on the provided configuration.
func SetupLogger(configManager types.ConfigManager) {
logConfig := configManager.GetLogConfig()
// Set log level
level, err := logrus.ParseLevel(logConfig.Level)
if err != nil {
logrus.Warn("Invalid log level, using info")
level = logrus.InfoLevel
}
logrus.SetLevel(level)
// Set log format
if logConfig.Format == "json" {
logrus.SetFormatter(&logrus.JSONFormatter{
TimestampFormat: "2006-01-02T15:04:05.000Z07:00", // ISO 8601 format
})
} else {
logrus.SetFormatter(&logrus.TextFormatter{
ForceColors: true,
FullTimestamp: true,
TimestampFormat: "2006-01-02 15:04:05",
})
}
// Setup file logging if enabled
if logConfig.EnableFile {
logDir := filepath.Dir(logConfig.FilePath)
if err := os.MkdirAll(logDir, 0755); err != nil {
logrus.Warnf("Failed to create log directory: %v", err)
} else {
logFile, err := os.OpenFile(logConfig.FilePath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
logrus.Warnf("Failed to open log file: %v", err)
} else {
logrus.SetOutput(io.MultiWriter(os.Stdout, logFile))
}
}
}
}

View File

@@ -10,10 +10,10 @@ import (
"time"
"gpt-load/internal/app"
"gpt-load/internal/config"
"gpt-load/internal/container"
"gpt-load/internal/models"
"gpt-load/internal/types"
"gpt-load/internal/utils"
"github.com/sirupsen/logrus"
)
@@ -47,7 +47,7 @@ func main() {
// Initialzie global logger
if err := container.Invoke(func(configManager types.ConfigManager) {
config.SetupLogger(configManager)
utils.SetupLogger(configManager)
}); err != nil {
logrus.Fatalf("Failed to setup logger: %v", err)
}