Ver Fonte

binlog切回原先的方式

xyxie há 1 ano atrás
pai
commit
5942ab0e04
2 ficheiros alterados com 40 adições e 10 exclusões
  1. 1 1
      models/db.go
  2. 39 9
      utils/logs.go

+ 1 - 1
models/db.go

@@ -32,7 +32,7 @@ func init() {
 	gl.SetConnMaxLifetime(10 * time.Minute)
 
 	orm.Debug = true
-	orm.DebugLog = orm.NewLog(utils.Binlog.Writer())
+	orm.DebugLog = orm.NewLog(utils.Binlog)
 
 	//注册对象
 	orm.RegisterModel(

+ 39 - 9
utils/logs.go

@@ -1,6 +1,8 @@
 package utils
 
 import (
+	"encoding/json"
+	"github.com/beego/beego/v2/core/logs"
 	"github.com/sirupsen/logrus"
 	"gopkg.in/natefinch/lumberjack.v2"
 	"os"
@@ -14,8 +16,8 @@ const (
 )
 
 var FileLog = logrus.New()
-var Binlog = logrus.New()
 var ApiLog = logrus.New()
+var Binlog *logs.BeeLogger
 
 func init() {
 	logPath := LogPath
@@ -48,7 +50,20 @@ func init() {
 	initApiLog()
 }
 
+type logConfig struct {
+	FileName string `json:"filename" description:"保存的文件名"`
+	MaxLines int    `json:"maxlines"  description:"每个文件保存的最大行数,默认值 1000000"`
+	MaxSize  int    `json:"maxsize" description:"每个文件保存的最大尺寸,默认值是 1 << 28, //256 MB"`
+	Daily    bool   `json:"daily" description:"是否按照每天 logrotate,默认是 true"`
+	MaxDays  int    `json:"maxdays" description:"文件最多保存多少天,默认保存 7 天"`
+	Rotate   bool   `json:"rotate" description:"是否开启 logrotate,默认是 true"`
+	Level    int    `json:"level" description:"日志保存的时候的级别,默认是 Trace 级别"`
+	Color    bool   `json:"color" description:"日志是否输出颜色"`
+	//Perm     string `json:"perm" description:"日志文件权限"`
+}
+
 func initBinlog() {
+	//binlog日志
 	//binlog日志
 	binlogPath := BinLogPath
 	if binlogPath == "" {
@@ -59,16 +74,18 @@ func initBinlog() {
 		binlogFile = DefaultBinlogFile
 	}
 	os.MkdirAll(binlogPath, os.ModePerm)
-	// 使用滚动压缩方式记录日志
 	logFileName := path.Join(binlogPath, binlogFile)
-	rolling(Binlog, logFileName)
-	//rolling(bLogFileName)
-	// 设置日志输出JSON格式
-	jsonFormat := new(logrus.JSONFormatter)
-	jsonFormat.DisableHTMLEscape = true
-	jsonFormat.TimestampFormat = HlbFormatDateTime
-	Binlog.SetFormatter(jsonFormat)
+	Binlog = logs.NewLogger(1000000)
+	logConf := getDefaultLogConfig()
+
+	logConf.FileName = logFileName
+	logConf.MaxLines = 10000000
+	logConf.Rotate = true
+	b, _ := json.Marshal(logConf)
+	Binlog.SetLogger(logs.AdapterFile, string(b))
+	Binlog.EnableFuncCallDepth(true)
 }
+
 func initApiLog() {
 	logPath := ApiLogPath
 	if logPath == "" {
@@ -108,3 +125,16 @@ func rolling(fLog *logrus.Logger, logFile string) {
 		LocalTime:  true,
 	})
 }
+
+func getDefaultLogConfig() logConfig {
+	return logConfig{
+		FileName: "",
+		MaxLines: 0,
+		MaxSize:  1 << 28,
+		Daily:    true,
+		MaxDays:  7, //我就是喜欢31天,咋滴,不喜欢你就自己改-_-!
+		Rotate:   true,
+		Level:    logs.LevelTrace,
+		//Perm:     "",
+	}
+}