1 Star 0 Fork 0

alemond / log

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
log.go 5.19 KB
一键复制 编辑 原始数据 按行查看 历史
elmundhe 提交于 2022-11-07 16:15 . 修改日志时间显示
package log
import (
"io"
"os"
"time"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
type Level = zapcore.Level
const (
TIMESTAMP_SEC = "2006-01-02T15:04:05.000"
TIMESTAMP_SEC_ZONE = "2006-01-02T15:04:05.000Z0700"
)
const (
InfoLevel Level = zap.InfoLevel
WarnLevel Level = zap.WarnLevel
ErrorLevel Level = zap.ErrorLevel
DPanicLevel Level = zap.DPanicLevel
PanicLevel Level = zap.PanicLevel // log msg, then panic
FatalLevel Level = zap.FatalLevel // log msg, then calls os.Exit(1)
DebugLevel Level = zap.DebugLevel
)
type Field = zap.Field
type Logger struct {
l *zap.Logger // zap确保zap.Logger是多协程安全的
level Level
}
var std = New(os.Stderr, DebugLevel, ConsoleFmt)
var sugarStd = std.l.Sugar()
func Default() *Logger {
return std
}
func ResetDefault(l *Logger) {
std = l
ZapInfo = std.l.Info
ZapWarn = std.l.Warn
ZapError = std.l.Error
ZapDPanic = std.l.DPanic
ZapPanic = std.l.Panic
ZapFatal = std.l.Fatal
ZapDebug = std.l.Debug
sugarStd = std.l.Sugar()
Debug = sugarStd.Debug
Info = sugarStd.Info
Warn = sugarStd.Warn
Error = sugarStd.Error
DPanic = sugarStd.DPanic
Panic = sugarStd.Panic
Fatal = sugarStd.Fatal
Debugf = sugarStd.Debugf
Infof = sugarStd.Infof
Warnf = sugarStd.Warnf
Errorf = sugarStd.Errorf
DPanicf = sugarStd.DPanicf
Panicf = sugarStd.Panicf
Fatalf = sugarStd.Fatalf
Debugw = sugarStd.Debugw
Infow = sugarStd.Infow
Warnw = sugarStd.Warnw
Errorw = sugarStd.Errorw
DPanicw = sugarStd.DPanicw
Panicw = sugarStd.Panicw
Fatalw = sugarStd.Fatalw
}
type Option = zap.Option
var (
WithCaller = zap.WithCaller
AddStacktrace = zap.AddStacktrace
AddCallerSkip = zap.AddCallerSkip // 打印文件skip,多个skip则相加
)
type OutputType int8
const (
ConsoleFmt OutputType = iota
JsonFmt
)
func New(writer io.Writer, level Level, consoleFmt OutputType, opts ...Option) *Logger {
if writer == nil {
panic("writer is nil")
}
cfg := zap.NewProductionConfig()
cfg.EncoderConfig.EncodeTime = func(t time.Time, enc zapcore.PrimitiveArrayEncoder) {
enc.AppendString(t.Format(TIMESTAMP_SEC))
}
// 默认Console格式
encoder := zapcore.NewConsoleEncoder(cfg.EncoderConfig)
if consoleFmt == JsonFmt {
encoder = zapcore.NewJSONEncoder(cfg.EncoderConfig)
}
core := zapcore.NewCore(
encoder,
zapcore.AddSync(writer),
zapcore.Level(level),
)
opts = append(opts, WithCaller(true))
logger := &Logger{
l: zap.New(core, opts...),
level: level,
}
return logger
}
func (l *Logger) Sync() error {
return l.l.Sync()
}
func Sync() error {
if std != nil {
return std.Sync()
}
return nil
}
// func (l *Logger) Debug(msg string, field ...Field) {
// l.l.Debug(msg, field...)
// }
// func (l *Logger) Info(msg string, field ...Field) {
// l.l.Info(msg, field...)
// }
// func (l *Logger) Warn(msg string, field ...Field) {
// l.l.Warn(msg, field...)
// }
// func (l *Logger) Error(msg string, field ...Field) {
// l.l.Error(msg, field...)
// }
// func (l *Logger) DPanic(msg string, field ...Field) {
// l.l.DPanic(msg, field...)
// }
// func (l *Logger) Panic(msg string, field ...Field) {
// l.l.Panic(msg, field...)
// }
// func (l *Logger) Fatal(msg string, field ...Field) {
// l.l.Fatal(msg, field...)
// }
var (
Skip = zap.Skip
Binary = zap.Binary
Bool = zap.Bool
Boolp = zap.Boolp
ByteString = zap.ByteString
Complex128 = zap.Complex128
Complex128p = zap.Complex128p
Complex64 = zap.Complex64
Complex64p = zap.Complex64p
Float64 = zap.Float64
Float64p = zap.Float64p
Float32 = zap.Float32
Float32p = zap.Float32p
Int = zap.Int
Intp = zap.Intp
Int64 = zap.Int64
Int64p = zap.Int64p
Int32 = zap.Int32
Int32p = zap.Int32
Int16 = zap.Int16
Int16p = zap.Int16p
Int8 = zap.Int8
Int8p = zap.Int8p
String = zap.String
Stringp = zap.Stringp
Uint = zap.Uint
Uintp = zap.Uintp
Uint64 = zap.Uint64
Uint64p = zap.Uint64p
Uint32 = zap.Uint32
Uint32p = zap.Uint32p
Uint16 = zap.Uint16
Uint16p = zap.Uint16p
Uint8 = zap.Uint8
Uint8p = zap.Uint8p
Uintptr = zap.Uintptr
Uintptrp = zap.Uintptr
Reflect = zap.Reflect
Namespace = zap.Namespace
Stringer = zap.Stringer
Time = zap.Time
Timep = zap.Timep
Stack = zap.Stack
StackSkip = zap.StackSkip
Duration = zap.Duration
Durationp = zap.Durationp
Object = zap.Object
Inline = zap.Inline
Any = zap.Any
)
var (
ZapInfo = std.l.Info
ZapWarn = std.l.Warn
ZapError = std.l.Error
ZapDPanic = std.l.DPanic
ZapPanic = std.l.Panic
ZapFatal = std.l.Fatal
ZapDebug = std.l.Debug
Debug = sugarStd.Debug
Info = sugarStd.Info
Warn = sugarStd.Warn
Error = sugarStd.Error
DPanic = sugarStd.DPanic
Panic = sugarStd.Panic
Fatal = sugarStd.Fatal
Debugf = sugarStd.Debugf
Infof = sugarStd.Infof
Warnf = sugarStd.Warnf
Errorf = sugarStd.Errorf
DPanicf = sugarStd.DPanicf
Panicf = sugarStd.Panicf
Fatalf = sugarStd.Fatalf
Debugw = sugarStd.Debugw
Infow = sugarStd.Infow
Warnw = sugarStd.Warnw
Errorw = sugarStd.Errorw
DPanicw = sugarStd.DPanicw
Panicw = sugarStd.Panicw
Fatalw = sugarStd.Fatalw
)
Go
1
https://gitee.com/alemond/log.git
git@gitee.com:alemond/log.git
alemond
log
log
master

搜索帮助