diff --git a/logger/access.go b/logger/access.go index a25203f..d97122e 100644 --- a/logger/access.go +++ b/logger/access.go @@ -10,11 +10,9 @@ package logger import ( "os" "sync" - "time" "github.com/natefinch/lumberjack" "github.com/rs/zerolog" - "github.com/rs/zerolog/pkgerrors" ) var access_once sync.Once @@ -29,8 +27,6 @@ func SetupAccessLogFile(path string) { func Access() *zerolog.Logger { access_once.Do(func() { - zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack - zerolog.TimeFieldFormat = time.RFC3339Nano fileLogger := &lumberjack.Logger{ Filename: access_log_path, @@ -43,9 +39,11 @@ func Access() *zerolog.Logger { output := zerolog.MultiLevelWriter(os.Stderr, fileLogger) l := zerolog.New(output). - Level(zerolog.InfoLevel). + Level(loggerLevel). With(). Timestamp(). + Stack(). + CallerWithSkipFrameCount(2). Logger() access_log = &l diff --git a/logger/console.go b/logger/console.go index b9b520c..cdcb4f8 100644 --- a/logger/console.go +++ b/logger/console.go @@ -10,11 +10,9 @@ package logger import ( "os" "sync" - "time" "github.com/natefinch/lumberjack" "github.com/rs/zerolog" - "github.com/rs/zerolog/pkgerrors" ) var console_once sync.Once @@ -29,8 +27,6 @@ func SetupConsoleLogFile(path string) { func Console() *zerolog.Logger { console_once.Do(func() { - zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack - zerolog.TimeFieldFormat = time.RFC3339Nano fileLogger := &lumberjack.Logger{ Filename: console_log_path, @@ -43,9 +39,11 @@ func Console() *zerolog.Logger { output := zerolog.MultiLevelWriter(os.Stderr, fileLogger) l := zerolog.New(output). - Level(zerolog.InfoLevel). + Level(loggerLevel). With(). Timestamp(). + Stack(). + CallerWithSkipFrameCount(2). Logger() console_log = &l diff --git a/logger/init.go b/logger/init.go new file mode 100644 index 0000000..2cc72f8 --- /dev/null +++ b/logger/init.go @@ -0,0 +1,30 @@ +// +// init.go +// Copyright (C) 2023 tiglog +// +// Distributed under terms of the MIT license. +// + +package logger + +import ( + "strconv" + "time" + + "github.com/rs/zerolog" + "github.com/rs/zerolog/pkgerrors" +) + +var loggerLevel = zerolog.InfoLevel + +func init() { + zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack + zerolog.TimeFieldFormat = time.RFC3339Nano + zerolog.CallerMarshalFunc = func(pc uintptr, file string, line int) string { + return file + ":" + strconv.Itoa(line) + } +} + +func SetLevel(level zerolog.Level) { + loggerLevel = level +} diff --git a/logger/log.go b/logger/log.go index a706038..036da8f 100644 --- a/logger/log.go +++ b/logger/log.go @@ -10,31 +10,23 @@ package logger import ( "os" "sync" - "time" "github.com/natefinch/lumberjack" "github.com/rs/zerolog" - "github.com/rs/zerolog/pkgerrors" ) var once sync.Once var log_path = "./var/log/app.log" -var log_level = zerolog.InfoLevel func SetLogPath(path string) { log_path = path } -func SetLogLevel(level zerolog.Level) { - log_level = level -} var log *zerolog.Logger func Get() *zerolog.Logger { once.Do(func() { - zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack - zerolog.TimeFieldFormat = time.RFC3339Nano fileLogger := &lumberjack.Logger{ Filename: log_path, @@ -47,9 +39,11 @@ func Get() *zerolog.Logger { output := zerolog.MultiLevelWriter(os.Stderr, fileLogger) l := zerolog.New(output). - Level(log_level). + Level(loggerLevel). With(). Timestamp(). + Stack(). + CallerWithSkipFrameCount(2). Logger() log = &l }) diff --git a/logger/log_test.go b/logger/log_test.go index c01b82f..8fa05a9 100644 --- a/logger/log_test.go +++ b/logger/log_test.go @@ -8,6 +8,7 @@ package logger_test import ( + "errors" "testing" "git.hexq.cn/tiglog/golib/gtest" @@ -18,5 +19,6 @@ func TestLogToFile(t *testing.T) { // logger.SetupLog("./var/log/test.log", zerolog.DebugLevel) var log = logger.Get() gtest.NotNil(t, log) - log.Log().Msg("hello world") + err := errors.New("test error") + log.Log().Err(err).Msg("hello world") } diff --git a/logger/recover.go b/logger/recover.go index a7d8e07..d82cba8 100644 --- a/logger/recover.go +++ b/logger/recover.go @@ -10,11 +10,9 @@ package logger import ( "os" "sync" - "time" "github.com/natefinch/lumberjack" "github.com/rs/zerolog" - "github.com/rs/zerolog/pkgerrors" ) var recover_once sync.Once @@ -29,8 +27,6 @@ func SetupRecoverLogFile(path string) { func Recover() *zerolog.Logger { recover_once.Do(func() { - zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack - zerolog.TimeFieldFormat = time.RFC3339Nano fileLogger := &lumberjack.Logger{ Filename: recover_log_path, @@ -46,6 +42,8 @@ func Recover() *zerolog.Logger { // Level(zerolog.InfoLevel). With(). Timestamp(). + Stack(). + CallerWithSkipFrameCount(2). Logger() recover_log = &l diff --git a/logger/work.go b/logger/work.go index 838c3ee..ef6a8b7 100644 --- a/logger/work.go +++ b/logger/work.go @@ -10,11 +10,9 @@ package logger import ( "os" "sync" - "time" "github.com/natefinch/lumberjack" "github.com/rs/zerolog" - "github.com/rs/zerolog/pkgerrors" ) var work_once sync.Once @@ -29,9 +27,6 @@ func SetupWorkLogFile(path string) { func Work() *zerolog.Logger { work_once.Do(func() { - zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack - zerolog.TimeFieldFormat = time.RFC3339Nano - fileLogger := &lumberjack.Logger{ Filename: work_log_path, MaxSize: 5, // @@ -43,9 +38,11 @@ func Work() *zerolog.Logger { output := zerolog.MultiLevelWriter(os.Stderr, fileLogger) l := zerolog.New(output). - Level(zerolog.InfoLevel). + Level(loggerLevel). With(). Timestamp(). + Stack(). + CallerWithSkipFrameCount(2). Logger() work_log = &l