@@ -3,6 +3,7 @@ package logger
33import (
44 "context"
55 "fmt"
6+ "os"
67 "path"
78 "runtime"
89 "sort"
@@ -126,6 +127,10 @@ func (f *CustomFormatter) Format(entry *logrus.Entry) ([]byte, error) {
126127
127128// 初始化全局日志设置
128129func init () {
130+ // 根据环境变量设置全局日志级别
131+ logLevel := getLogLevelFromEnv ()
132+ logrus .SetLevel (logLevel )
133+
129134 // 设置日志格式而不修改全局时区
130135 logrus .SetFormatter (& CustomFormatter {ForceColor : true })
131136 logrus .SetReportCaller (false )
@@ -136,12 +141,8 @@ func GetLogger(c context.Context) *logrus.Entry {
136141 if logger := c .Value (types .LoggerContextKey ); logger != nil {
137142 return logger .(* logrus.Entry )
138143 }
139- newLogger := logrus .New ()
140- newLogger .SetFormatter (& CustomFormatter {ForceColor : true })
141- // 设置默认日志级别
142- newLogger .SetLevel (logrus .DebugLevel )
143- // 启用调用者信息
144- return logrus .NewEntry (newLogger )
144+ // 使用全局logrus实例,确保日志级别设置正确生效
145+ return logrus .NewEntry (logrus .StandardLogger ())
145146}
146147
147148// SetLogLevel 设置日志级别
@@ -166,6 +167,27 @@ func SetLogLevel(level LogLevel) {
166167 logrus .SetLevel (logLevel )
167168}
168169
170+ // getLogLevelFromEnv 从环境变量读取日志级别配置
171+ func getLogLevelFromEnv () logrus.Level {
172+ // 从环境变量读取LOG_LEVEL配置
173+ logLevelStr := strings .ToLower (os .Getenv ("LOG_LEVEL" ))
174+
175+ switch logLevelStr {
176+ case "debug" :
177+ return logrus .DebugLevel
178+ case "info" :
179+ return logrus .InfoLevel
180+ case "warn" , "warning" :
181+ return logrus .WarnLevel
182+ case "error" :
183+ return logrus .ErrorLevel
184+ case "fatal" :
185+ return logrus .FatalLevel
186+ default :
187+ return logrus .DebugLevel // 无效配置时使用默认值
188+ }
189+ }
190+
169191// 添加调用者字段
170192func addCaller (entry * logrus.Entry , skip int ) * logrus.Entry {
171193 pc , file , line , ok := runtime .Caller (skip )
0 commit comments