| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | package zaplogimport (	"fmt"	"kpt-tmr-group/pkg/tool"	"path"	"runtime"	"time"	"github.com/natefinch/lumberjack"	"go.uber.org/zap"	"go.uber.org/zap/zapcore")var (	Logger      *zap.Logger	logFileName = fmt.Sprintf("./logger/zap-%s.log", time.Now().Format(tool.DateTime)))func init() {	encoderConfig := zap.NewDevelopmentEncoderConfig()	// 设置日志时间格式	encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder	// 日志encoder 还是json encode,把日志进行格式化json格式的	encoder := zapcore.NewJSONEncoder(encoderConfig)	// topicErrors := zapcore.AddSync(ioutil.Discard)  //kafka topic	fileWriteSyncer := getFileLogWriter(logFileName)	core := zapcore.NewTee(		// zapcore.NewCore(encoder, zapcore.AddSync(os.Stdout), zapcore.DebugLevel),  // 打印到控制台		// zapcore.NewCore(zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig()), topicErrors, zapcore.ErrorLevel),   // 打印到kafka 待验证		zapcore.NewCore(encoder, fileWriteSyncer, zapcore.DebugLevel), // 打印到指定的日志文件	)	Logger = zap.New(core)}func getFileLogWriter(logFileName string) zapcore.WriteSyncer {	lumberJackLogger := &lumberjack.Logger{		Filename:   logFileName,		MaxSize:    100, // 单个文件最大100M		MaxBackups: 10,  // 大于60个日志文件后,清理比较旧的日志文件		MaxAge:     1,   // 一天切割1次		Compress:   false,	}	return zapcore.AddSync(lumberJackLogger)}func getCallerInfoForLog() (callerFields []zap.Field) {	pc, file, line, ok := runtime.Caller(2)	if !ok {		return	}	funcName := runtime.FuncForPC(pc).Name()	funcName = path.Base(funcName)	callerFields = append(callerFields, zap.String("func", funcName), zap.String("file", file), zap.Int("line", line))	return}func Info(message string, fields ...zap.Field) {	callerFields := getCallerInfoForLog()	fields = append(fields, callerFields...)	Logger.Info(message, fields...)}func Debug(message string, fields ...zap.Field) {	callerFields := getCallerInfoForLog()	fields = append(fields, callerFields...)	Logger.Debug(message, fields...)}func Error(message string, fields ...zap.Field) {	callerFields := getCallerInfoForLog()	fields = append(fields, callerFields...)	Logger.Error(message, fields...)}func Warn(message string, fields ...zap.Field) {	callerFields := getCallerInfoForLog()	fields = append(fields, callerFields...)	Logger.Warn(message, fields...)}
 |