Jelajahi Sumber

日志优化

xyxie 1 tahun lalu
induk
melakukan
d995bf5cc8
1 mengubah file dengan 24 tambahan dan 17 penghapusan
  1. 24 17
      utils/logs.go

+ 24 - 17
utils/logs.go

@@ -2,17 +2,19 @@ package utils
 
 import (
 	"encoding/json"
+	"fmt"
 	"github.com/beego/beego/v2/core/logs"
 	"github.com/sirupsen/logrus"
 	"gopkg.in/natefinch/lumberjack.v2"
 	"os"
 	"path"
+	"time"
 )
 
 const (
-	DefaultLogPath    = "./rdlucklog"
-	DefaultBinlogPath = "./binlog"
-	DefaultBinlogFile = "binlog.log"
+	DefaultLogPath    = "./rdlucklog/filelog"
+	DefaultBinlogPath = "./rdlucklog/binlog"
+	DefaultApiLogPath = "./rdlucklog/apilog"
 )
 
 var FileLog = logrus.New()
@@ -26,14 +28,16 @@ func init() {
 	}
 	logFile := LogFile
 	if logFile == "" {
-		logFile = APP_NAME_EN + ".log"
+		logFile = fmt.Sprintf("%s.log", time.Now().Format(FormatDateUnSpace))
 	}
 	os.MkdirAll(logPath, os.ModePerm)
 
 	// 打开文件
 	logFileName := path.Join(logPath, logFile)
+	logConf := getDefaultLogrusConfig(logFileName)
+	logConf.MaxAge = 1
 	// 使用滚动压缩方式记录日志
-	rolling(FileLog, logFileName)
+	rolling(FileLog, logConf)
 	//rolling(bLogFileName)
 	// 设置日志输出JSON格式
 	jsonFormat := new(logrus.JSONFormatter)
@@ -45,6 +49,7 @@ func init() {
 	// 设置日志记录级别
 	//FileLog.SetLevel(logrus.DebugLevel)
 
+	//初始化binlog日志
 	//FileLog.Info("abc")
 	initBinlog()
 	initApiLog()
@@ -71,7 +76,7 @@ func initBinlog() {
 	}
 	binlogFile := BinLogFile
 	if binlogFile == "" {
-		binlogFile = DefaultBinlogFile
+		binlogFile = fmt.Sprintf("%s.log", time.Now().Format(FormatDateUnSpace))
 	}
 	os.MkdirAll(binlogPath, os.ModePerm)
 	logFileName := path.Join(binlogPath, binlogFile)
@@ -89,22 +94,19 @@ func initBinlog() {
 func initApiLog() {
 	logPath := ApiLogPath
 	if logPath == "" {
-		if RunMode == "release" {
-			logPath = `/data/etalogs/` + APP_NAME_EN
-		} else {
-			logPath = `./rdlucklog/api`
-		}
+		logPath = DefaultApiLogPath
 	}
 	logFile := ApiLogFile
 	if logFile == "" {
-		logFile = APP_NAME_EN + "_api.log"
+		logFile = fmt.Sprintf("%s.log", time.Now().Format(FormatDateUnSpace))
 	}
 	os.MkdirAll(logPath, os.ModePerm)
 
 	// 打开文件
 	logFileName := path.Join(logPath, logFile)
+	logConf := getDefaultLogrusConfig(logFileName)
 	// 使用滚动压缩方式记录日志
-	rolling(ApiLog, logFileName)
+	rolling(ApiLog, logConf)
 	//rolling(bLogFileName)
 	// 设置日志输出JSON格式
 	jsonFormat := new(logrus.JSONFormatter)
@@ -114,16 +116,21 @@ func initApiLog() {
 }
 
 // 日志滚动设置
-func rolling(fLog *logrus.Logger, logFile string) {
+func rolling(fLog *logrus.Logger, config *lumberjack.Logger) {
 	// 设置输出
-	fLog.SetOutput(&lumberjack.Logger{
+	fLog.SetOutput(config)
+}
+
+func getDefaultLogrusConfig(logFile string) (config *lumberjack.Logger) {
+	config = &lumberjack.Logger{
 		Filename:   logFile, //日志文件位置
-		MaxSize:    100,     // 单文件最大容量,单位是MB
+		MaxSize:    256,     // 单文件最大容量,单位是MB
 		MaxBackups: 3,       // 最大保留过期文件个数
 		MaxAge:     7,       // 保留过期文件的最大时间间隔,单位是天
 		Compress:   true,    // 是否需要压缩滚动日志, 使用的 gzip 压缩
 		LocalTime:  true,
-	})
+	}
+	return
 }
 
 func getDefaultLogConfig() logConfig {