diff --git a/format.go b/format.go index d0e5c40..3e75983 100644 --- a/format.go +++ b/format.go @@ -26,7 +26,7 @@ func (l *Logger) logger(ctx context.Context, event string, v ...any) { by, _ := json.Marshal(v) - nowTime := time.Now().Local().Format("2006-01-02 15:04:05.000000") + nowTime := time.Now().In(l.option.timeZone).Format("2006-01-02 15:04:05.000000") traceId, _ := ctx.Value(l.option.traceField).(string) diff --git a/loggerx_test.go b/loggerx_test.go index 403a78d..27d6c81 100644 --- a/loggerx_test.go +++ b/loggerx_test.go @@ -20,7 +20,9 @@ func TestLogger(t *testing.T) { l := loggerx.NewLogger( context.Background(), loggerx.SetErrorToInfo(), - loggerx.SetExtraDriver(b, Print{}), + loggerx.SetToConsole(), + loggerx.SetTimeZone(time.UTC), + // loggerx.SetExtraDriver(b, Print{}), loggerx.SetFileSplit(loggerx.FileSplitTimeA), ) diff --git a/options.go b/options.go index bb26173..b169344 100644 --- a/options.go +++ b/options.go @@ -1,6 +1,10 @@ package loggerx -import "io" +import ( + "io" + "os" + "time" +) type loggerOption struct { prefix string // 日志前缀 @@ -8,12 +12,13 @@ type loggerOption struct { dir string // 文件目录 isGinLog bool isGid bool - traceField string // trace字段 - errorToInfo bool // 错误日志是否写入info日志 - days int // 日志保存天数 - drivers []io.Writer // 文件落盘驱动器 - fileSplit FileSplit // 文件切割规则 - sizeSplit int // 根据文件大小切割 + traceField string // trace字段 + errorToInfo bool // 错误日志是否写入info日志 + days int // 日志保存天数 + drivers []io.Writer // 文件落盘驱动器 + fileSplit FileSplit // 文件切割规则 + sizeSplit int // 根据文件大小切割 + timeZone *time.Location // 时区 } func defaultOptions() loggerOption { @@ -25,6 +30,7 @@ func defaultOptions() loggerOption { traceField: "trace_id", days: 7, fileSplit: FileSplitTimeE, + timeZone: time.Local, } } @@ -37,6 +43,13 @@ func SetTraceField(traceField string) Option { } } +// 打印到控制台 +func SetToConsole() Option { + return func(o *loggerOption) { + o.drivers = append(o.drivers, os.Stdout) + } +} + // 错误日志是否写入info日志 func SetErrorToInfo() Option { return func(o *loggerOption) { @@ -89,9 +102,9 @@ func SetDays(days int) Option { } // 设置时区 -func SetTimeZone() Option { +func SetTimeZone(loc *time.Location) Option { return func(o *loggerOption) { - // o.timeZone = timeZone + o.timeZone = loc } }