diff --git a/mylogrus/log.go b/mylogrus/log.go index c64738364f000281ae2abb65637fb6098449e68e..ae97a998040d3d4956a62966d3d4d57a48507a77 100644 --- a/mylogrus/log.go +++ b/mylogrus/log.go @@ -14,6 +14,7 @@ const logDir = "/var/log/hilo/" var filenamePrefix string var MyLog = logrus.New() +var RedisLog = logrus.New() func Info(v interface{}) { MyLog.Info("") @@ -44,6 +45,23 @@ func init() { MyLog.SetReportCaller(true) } +func InitRedisLog() { + RedisLog.SetOutput(os.Stdout) + + RedisLog.SetFormatter(&logrus.TextFormatter{ + ForceQuote: false, + DisableQuote: true, + TimestampFormat: "2006-01-02 15:04:05.000", + FullTimestamp: true, + }) + hook := lfshook.NewHook(lfshook.WriterMap{ + logrus.InfoLevel: GetRedisLog(), + }, &logrus.TextFormatter{ForceQuote: false, DisableQuote: true, TimestampFormat: time.RFC3339Nano}) + RedisLog.AddHook(hook) + RedisLog.SetLevel(logrus.InfoLevel) + RedisLog.SetReportCaller(true) +} + func GetInfoLog() io.Writer { return getLevelWrite(logrus.InfoLevel) } @@ -91,3 +109,18 @@ func GetSqlLog() io.Writer { } return writer } + +func GetRedisLog() io.Writer { + var name string = "redis.log" + name = filenamePrefix + name + writer, err := rotatelogs.New( + name+".%Y%m%d%H", + rotatelogs.WithLinkName(name), // 生成软链,指向最新日志文件 + rotatelogs.WithMaxAge(7*24*time.Hour), // 文件最大保存时间 + rotatelogs.WithRotationTime(time.Hour), // 日志切割时间间隔 + ) + if err != nil { + MyLog.Fatal("Failed to create log file:", err.Error()) + } + return writer +} diff --git a/resource/redisCli/redis.go b/resource/redisCli/redis.go index da6084fbec339bc3bf0ebe8fb51ae6d0295b5bf2..f6d5a1cecb3baa541e5439bb5d8186355e10a367 100644 --- a/resource/redisCli/redis.go +++ b/resource/redisCli/redis.go @@ -26,10 +26,14 @@ func init() { } else { mylogrus.MyLog.Info("redis db0 connection success - ", pong) } - // log hook - RedisClient.AddHook(redisHook{}) } func GetRedis() *redis.Client { return RedisClient } + +func AddRedisHook() { + // log hook + RedisClient.AddHook(redisHook{}) + mylogrus.InitRedisLog() +} diff --git a/resource/redisCli/redis_hook.go b/resource/redisCli/redis_hook.go index 6d59dad5586c51fd9ea7254ac10317f9775c6468..09f24d3cd0e02675297470c18e85fe63fb41844a 100644 --- a/resource/redisCli/redis_hook.go +++ b/resource/redisCli/redis_hook.go @@ -25,7 +25,7 @@ func (redisHook) AfterProcess(ctx context.Context, cmd redis.Cmder) error { if s, ok := start.(time.Time); ok { cost = time.Now().Sub(s).Milliseconds() } - mylogrus.MyLog.Infof("redis cmd: <%s>,err:%v traceId:%v,userId:%v,cost:%v ms", cmd.String(), cmd.Err(), traceId, userId, cost) + mylogrus.RedisLog.Infof("redis cmd: <%s>,err:%v traceId:%v,userId:%v,cost:%v ms", cmd.String(), cmd.Err(), traceId, userId, cost) return nil }