feat: 添加支持通过环境变量 LOG_LEVEL 控制输出日志等级

This commit is contained in:
Shine 2025-05-28 15:51:10 +08:00
parent 104c4bc450
commit 8d4baf6141
2 changed files with 31 additions and 0 deletions

View File

@ -158,6 +158,8 @@ var GeminiVersion = env.String("GEMINI_VERSION", "v1")
var OnlyOneLogFile = env.Bool("ONLY_ONE_LOG_FILE", false)
var LogLevel = env.String("LOG_LEVEL", "INFO")
var RelayProxy = env.String("RELAY_PROXY", "")
var UserContentRequestProxy = env.String("USER_CONTENT_REQUEST_PROXY", "")
var UserContentRequestTimeout = env.Int("USER_CONTENT_REQUEST_TIMEOUT", 30)

View File

@ -28,6 +28,30 @@ const (
loggerFatal loggerLevel = "FATAL"
)
// logLevel priority: DEBUG < INFO < WARN < ERROR < FATAL
func getLevelPriority(level loggerLevel) int {
switch level {
case loggerDEBUG:
return 0
case loggerINFO:
return 1
case loggerWarn:
return 2
case loggerError:
return 3
case loggerFatal:
return 4
default:
return 1 // 默认为 INFO 级别
}
}
// shouldLog 检查是否应该输出该等级的日志
func shouldLog(level loggerLevel) bool {
configLevel := loggerLevel(strings.ToUpper(config.LogLevel))
return getLevelPriority(level) >= getLevelPriority(configLevel)
}
var setupLogOnce sync.Once
func SetupLogger() {
@ -120,6 +144,11 @@ func FatalLogf(format string, a ...any) {
}
func logHelper(ctx context.Context, level loggerLevel, msg string) {
// 检查是否应该输出该等级的日志
if !shouldLog(level) {
return
}
writer := gin.DefaultErrorWriter
if level == loggerINFO {
writer = gin.DefaultWriter