61 lines
1.5 KiB
Go
61 lines
1.5 KiB
Go
package g
|
|
|
|
import (
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
)
|
|
|
|
// Logger struct represents a zap-based logger.
|
|
type Logger struct {
|
|
*zap.Logger
|
|
}
|
|
|
|
// NewLogger creates a new Logger instance.
|
|
func NewLogger() (*Logger, error) {
|
|
config := zap.Config{
|
|
Encoding: "json",
|
|
Level: zap.NewAtomicLevelAt(zap.DebugLevel),
|
|
OutputPaths: []string{"stdout"}, // 输出到控制台
|
|
ErrorOutputPaths: []string{"stderr"},
|
|
EncoderConfig: zapcore.EncoderConfig{
|
|
MessageKey: "message",
|
|
LevelKey: "level",
|
|
TimeKey: "time",
|
|
CallerKey: "caller",
|
|
EncodeLevel: zapcore.CapitalLevelEncoder,
|
|
EncodeTime: zapcore.ISO8601TimeEncoder,
|
|
EncodeCaller: zapcore.ShortCallerEncoder,
|
|
},
|
|
}
|
|
logger, err := config.Build()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &Logger{logger}, nil
|
|
}
|
|
|
|
// Debug logs a debug message.
|
|
func (l *Logger) Debug(msg string, fields ...zap.Field) {
|
|
l.Logger.Debug(msg, fields...)
|
|
}
|
|
|
|
// Info logs an info message.
|
|
func (l *Logger) Info(msg string, fields ...zap.Field) {
|
|
l.Logger.Info(msg, fields...)
|
|
}
|
|
|
|
// Warn logs a warning message.
|
|
func (l *Logger) Warn(msg string, fields ...zap.Field) {
|
|
l.Logger.Warn(msg, fields...)
|
|
}
|
|
|
|
// Error logs an error message.
|
|
func (l *Logger) Error(msg string, fields ...zap.Field) {
|
|
l.Logger.Error(msg, fields...)
|
|
}
|
|
|
|
// Fatal logs a fatal message and exits the program with a non-zero status code.
|
|
func (l *Logger) Fatal(msg string, fields ...zap.Field) {
|
|
l.Logger.Fatal(msg, fields...)
|
|
}
|