|
@@ -10,29 +10,25 @@ import (
|
|
|
|
|
|
var log *Logger
|
|
|
|
|
|
-// 默认配置,准备了控制台、json文件两种输出方式
|
|
|
-var consoleEncoder zapcore.Encoder
|
|
|
-var jsonEncoder zapcore.Encoder
|
|
|
-var consoleSync zapcore.WriteSyncer
|
|
|
-var outputSync zapcore.WriteSyncer
|
|
|
-
|
|
|
func init() {
|
|
|
- consoleEncoderConfig := zap.NewDevelopmentEncoderConfig()
|
|
|
- consoleEncoderConfig.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05")
|
|
|
- consoleEncoder = zapcore.NewConsoleEncoder(consoleEncoderConfig)
|
|
|
- jsonEncoderConfig := zap.NewProductionEncoderConfig()
|
|
|
- jsonEncoderConfig.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05")
|
|
|
- jsonEncoder = zapcore.NewJSONEncoder(jsonEncoderConfig)
|
|
|
- consoleSync = zapcore.AddSync(os.Stdout)
|
|
|
- outputSync = zapcore.AddSync(&lumberjack.Logger{
|
|
|
- Filename: "logs/log",
|
|
|
- MaxSize: 1,
|
|
|
- MaxAge: 10,
|
|
|
- LocalTime: true,
|
|
|
- })
|
|
|
-
|
|
|
- log = New()
|
|
|
- log.AddCore(BuiltinConsoleCore(DebugLv), BuiltinOutputFileCore(DebugLv))
|
|
|
+ consoleCfg := zap.NewDevelopmentEncoderConfig()
|
|
|
+ consoleCfg.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05")
|
|
|
+ jsonCfg := zap.NewProductionEncoderConfig()
|
|
|
+ jsonCfg.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05")
|
|
|
+
|
|
|
+ log = &Logger{
|
|
|
+ lv: zap.NewAtomicLevelAt(zap.DebugLevel),
|
|
|
+ }
|
|
|
+ log.cores = append(log.cores,
|
|
|
+ zapcore.NewCore(zapcore.NewConsoleEncoder(consoleCfg), zapcore.AddSync(os.Stdout), log.lv),
|
|
|
+ zapcore.NewCore(zapcore.NewJSONEncoder(jsonCfg), zapcore.AddSync(&lumberjack.Logger{
|
|
|
+ Filename: "logs/log",
|
|
|
+ MaxSize: 1,
|
|
|
+ MaxAge: 10,
|
|
|
+ LocalTime: true,
|
|
|
+ }), log.lv),
|
|
|
+ )
|
|
|
+ log.flushLogger()
|
|
|
}
|
|
|
|
|
|
// With 见 Logger.With
|
|
@@ -66,7 +62,7 @@ func Error(vs ...any) *Logger {
|
|
|
|
|
|
// Lv 见 Logger.Lv
|
|
|
func Lv() Level {
|
|
|
- return Level(log.Lv().Level())
|
|
|
+ return log.Lv()
|
|
|
}
|
|
|
|
|
|
// SetLv 见 Logger.SetLv
|
|
@@ -88,7 +84,7 @@ func NewOutput(writer io.Writer) *Logger {
|
|
|
}
|
|
|
|
|
|
// SetLogger 替换fslog包默认的log对象
|
|
|
-// Logger 支持了很多zapcore级别的底层配置,见 Logger
|
|
|
+// Logger 支持了zapcore级别的底层配置,见 Logger
|
|
|
func SetLogger(logger *Logger) *Logger {
|
|
|
log = logger
|
|
|
return log
|
|
@@ -98,13 +94,3 @@ func SetLogger(logger *Logger) *Logger {
|
|
|
func Flush() {
|
|
|
log.Flush()
|
|
|
}
|
|
|
-
|
|
|
-// BuiltinConsoleCore 获取内置的控制台输出 zapcore.Core
|
|
|
-func BuiltinConsoleCore(lv Level) zapcore.Core {
|
|
|
- return zapcore.NewCore(consoleEncoder, consoleSync, lv.zap())
|
|
|
-}
|
|
|
-
|
|
|
-// BuiltinOutputFileCore 获取文件输出 zapcore.Core
|
|
|
-func BuiltinOutputFileCore(lv Level) zapcore.Core {
|
|
|
- return zapcore.NewCore(jsonEncoder, outputSync, lv.zap())
|
|
|
-}
|