mirror of
https://github.com/go-i2p/go-github-sync.git
synced 2025-07-04 14:42:56 -04:00
sync file generator
This commit is contained in:
@ -0,0 +1,49 @@
|
||||
// Package logger provides structured logging functionality.
|
||||
package logger
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
)
|
||||
|
||||
// Logger wraps zap.Logger to provide a simpler interface.
|
||||
type Logger struct {
|
||||
*zap.SugaredLogger
|
||||
}
|
||||
|
||||
// New creates a new Logger instance.
|
||||
func New(debug bool) *Logger {
|
||||
level := zapcore.InfoLevel
|
||||
if debug {
|
||||
level = zapcore.DebugLevel
|
||||
}
|
||||
|
||||
encoderConfig := zapcore.EncoderConfig{
|
||||
TimeKey: "time",
|
||||
LevelKey: "level",
|
||||
NameKey: "logger",
|
||||
CallerKey: "caller",
|
||||
MessageKey: "msg",
|
||||
StacktraceKey: "stacktrace",
|
||||
LineEnding: zapcore.DefaultLineEnding,
|
||||
EncodeLevel: zapcore.CapitalLevelEncoder,
|
||||
EncodeTime: zapcore.ISO8601TimeEncoder,
|
||||
EncodeDuration: zapcore.SecondsDurationEncoder,
|
||||
EncodeCaller: zapcore.ShortCallerEncoder,
|
||||
}
|
||||
|
||||
core := zapcore.NewCore(
|
||||
zapcore.NewConsoleEncoder(encoderConfig),
|
||||
zapcore.Lock(os.Stdout),
|
||||
level,
|
||||
)
|
||||
|
||||
return &Logger{zap.New(core).Sugar()}
|
||||
}
|
||||
|
||||
// With adds structured context to the logger.
|
||||
func (l *Logger) With(args ...interface{}) *Logger {
|
||||
return &Logger{l.SugaredLogger.With(args...)}
|
||||
}
|
||||
|
Reference in New Issue
Block a user