Skip to content

Commit

Permalink
feat: add method 'GetOptions' for a logger instance
Browse files Browse the repository at this point in the history
  • Loading branch information
windvalley committed Nov 8, 2021
1 parent 94322cd commit 5c7fe6b
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 12 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ func main() {

monitorHook1 := func(entry log.Entry) error {
if entry.Level >= log.ErrorLevel {
fmt.Println("hook1 alert!")
fmt.Printf("hook1 alert! log entry: %v", entry)
}

// This error is zap internal error, and it will write to 'ErrorOutputPaths'.
Expand All @@ -146,7 +146,7 @@ func main() {

monitorHook2 := func(entry log.Entry) error {
if entry.Level >= log.ErrorLevel {
fmt.Println("hook2 alert!")
fmt.Println("hook2 alert! log entry: %v", entry)
}

return nil
Expand All @@ -166,7 +166,7 @@ func main() {

monitorHook1 := func(entry log.Entry) error {
if entry.Level >= log.ErrorLevel {
fmt.Println("hook1 alert!")
fmt.Println("hook1 alert! log entry: %v", entry)
}

// This error is zap internal error, and it will write to 'ErrorOutputPaths'.
Expand Down
4 changes: 2 additions & 2 deletions log.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func Init(opts *Options) {
//
func SetHooks(hooks ...Hook) {
zapLogger := std.zapLogger.WithOptions(zap.Hooks(hooks...))
std = newLogger(zapLogger)
std = newLogger(zapLogger, std.options)
resetDefaultLogger()
}

Expand Down Expand Up @@ -149,7 +149,7 @@ func New(opts *Options) *Logger {

l = l.WithOptions(zap.AddStacktrace(zapcore.PanicLevel), zap.AddCallerSkip(1))

return newLogger(l)
return newLogger(l, opts)
}

func buildOptions(cfg *zap.Config, errSink zapcore.WriteSyncer) []zap.Option {
Expand Down
15 changes: 11 additions & 4 deletions logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,33 +14,35 @@ const logContextKey ctxKey = iota
// Logger ...
type Logger struct {
zapLogger *zap.Logger
options *Options
}

// Create a new logger instance.
func newLogger(l *zap.Logger) *Logger {
func newLogger(l *zap.Logger, o *Options) *Logger {
return &Logger{
zapLogger: l,
options: o,
}
}

// WithName custom logger name.
func (l *Logger) WithName(name string) *Logger {
logger := l.zapLogger.Named(name)
return newLogger(logger)
return newLogger(logger, l.options)
}

// WithFields custom other log entry fileds.
func (l *Logger) WithFields(fields ...Field) *Logger {
logger := l.zapLogger.With(fields...)
return newLogger(logger)
return newLogger(logger, l.options)
}

// WithHooks is different from SetHooks,
// SetHooks is for global logger,
// WithHooks is for the new logger.
func (l *Logger) WithHooks(hooks ...Hook) *Logger {
logger := l.zapLogger.WithOptions(zap.Hooks(hooks...))
return newLogger(logger)
return newLogger(logger, l.options)
}

// ToContext put logger to context.
Expand All @@ -60,6 +62,11 @@ func (l *Logger) FromContext(ctx context.Context) *Logger {
return l.WithName("UnknownContext")
}

// GetOptions get logger instance configuration.
func (l *Logger) GetOptions() *Options {
return l.options
}

// C get logger from gin.Context.
//
// Usage example:
Expand Down
4 changes: 1 addition & 3 deletions options.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package log

import (
"go.uber.org/zap/zapcore"
)
import "go.uber.org/zap/zapcore"

const consoleFormat = "console"

Expand Down
4 changes: 4 additions & 0 deletions types.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,8 @@ var (
ToContext = std.ToContext
FromContext = std.FromContext

GetOptions = std.GetOptions

C = std.C
)

Expand Down Expand Up @@ -166,5 +168,7 @@ func resetDefaultLogger() {
ToContext = std.ToContext
FromContext = std.FromContext

GetOptions = std.GetOptions

C = std.C
}

0 comments on commit 5c7fe6b

Please sign in to comment.