123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- package log
- import (
- "fmt"
- "leafstalk/otherutils/system"
- "runtime/debug"
- "go.uber.org/zap"
- )
- // ZapLogger 包装了一个 Logger 实例
- type ZapLogger struct {
- sugarLogger *zap.SugaredLogger
- writer *asyncWriter
- }
- var (
- logger *ZapLogger
- )
- func InitCustomLogger(appName string) Logger {
- isWriteToConsole := false
- if system.IsWindows() {
- isWriteToConsole = true // Windows默认开启控制台
- }
- filePath := fmt.Sprintf("../logs/%s", appName)
- sugarLogger, asyncWriter := InitLogger(filePath, isWriteToConsole)
- logger = &ZapLogger{
- sugarLogger: sugarLogger,
- writer: asyncWriter,
- }
- return logger
- // close := func() {
- // log.Sync()
- // close(w.entryChan)
- // w.wg.Wait()
- // }
- // l := new(CustomLogger)
- // l.logger = log
- // l.Close = close
- // logger = l
- // return l
- }
- // func L() *CustomLogger {
- // return logger
- // }
- // Info 记录一条信息级别的日志
- func (c *ZapLogger) Info(args ...interface{}) {
- c.sugarLogger.Info(args...)
- }
- // Infof 格式化记录一条信息级别的日志
- func (c *ZapLogger) Infof(format string, args ...interface{}) {
- c.sugarLogger.Infof(format, args...)
- }
- // Infoln 记录一条信息级别的日志,并在末尾添加换行符
- // func (c *ZapLogger) Infow(msg string, keysAndValues ...interface{}) {
- // c.sugarLogger.Infow(msg, keysAndValues...)
- // }
- // Warn 记录一条警告级别的日志
- func (c *ZapLogger) Warn(args ...interface{}) {
- c.sugarLogger.Warn(args...)
- }
- // Warnf 格式化记录一条警告级别的日志
- func (c *ZapLogger) Warnf(format string, args ...interface{}) {
- c.sugarLogger.Warnf(format, args...)
- }
- // Warnln 记录一条警告级别的日志,并在末尾添加换行符
- // func (c *ZapLogger) Warnw(msg string, keysAndValues ...interface{}) {
- // c.sugarLogger.Warnw(msg, keysAndValues...)
- // }
- // Error 记录一条错误级别的日志
- func (c *ZapLogger) Error(args ...interface{}) {
- c.sugarLogger.Error(args...)
- }
- // Errorf 格式化记录一条错误级别的日志
- func (c *ZapLogger) Errorf(format string, args ...interface{}) {
- c.sugarLogger.Errorf(format, args...)
- }
- // Errorln 记录一条错误级别的日志,并在末尾添加换行符
- // func (c *ZapLogger) Errorw(msg string, keysAndValues ...interface{}) {
- // c.sugarLogger.Errorw(msg, keysAndValues...)
- // }
- // Debug 记录一条调试级别的日志
- func (c *ZapLogger) Debug(args ...interface{}) {
- c.sugarLogger.Debug(args...)
- }
- // Debugf 格式化记录一条调试级别的日志
- func (c *ZapLogger) Debugf(format string, args ...interface{}) {
- c.sugarLogger.Debugf(format, args...)
- }
- // Debugln 记录一条调试级别的日志,并在末尾添加换行符
- // func (c *ZapLogger) Debugw(msg string, keysAndValues ...interface{}) {
- // c.sugarLogger.Debugw(msg, keysAndValues...)
- // }
- // Panic 记录一条致命级别的日志并触发 panic
- func (c *ZapLogger) Panic(args ...interface{}) {
- c.sugarLogger.Error(args...)
- c.sugarLogger.Panic(string(debug.Stack()))
- }
- // Panicf 格式化记录一条致命级别的日志并触发 panic
- func (c *ZapLogger) Panicf(format string, args ...interface{}) {
- c.sugarLogger.Errorf(format, args...)
- c.sugarLogger.Panic(string(debug.Stack()))
- }
- // Panicln 记录一条致命级别的日志并触发 panic,并在末尾添加换行符
- // func (c *ZapLogger) Panicw(msg string, keysAndValues ...interface{}) {
- // c.sugarLogger.Errorw(msg, keysAndValues...)
- // c.sugarLogger.Panic(string(debug.Stack()))
- // }
- // Fatal 记录一条致命级别的日志并调用 os.Exit(1)
- func (c *ZapLogger) Fatal(args ...interface{}) {
- c.sugarLogger.Error(args...)
- c.sugarLogger.Fatal(string(debug.Stack()))
- }
- // Fatalf 格式化记录一条致命级别的日志并调用 os.Exit(1)
- func (c *ZapLogger) Fatalf(format string, args ...interface{}) {
- c.sugarLogger.Errorf(format, args...)
- c.sugarLogger.Fatal(string(debug.Stack()))
- }
- func (zl *ZapLogger) Stop() {
- zl.sugarLogger.Sync() // 同步缓存
- zl.writer.Stop() // 停止异步写入器
- }
|