Quellcode durchsuchen

用beego自带的log

xyxie vor 1 Jahr
Ursprung
Commit
dd0e60ad54
5 geänderte Dateien mit 32 neuen und 125 gelöschten Zeilen
  1. 3 22
      controllers/base_auth.go
  2. 4 37
      controllers/base_common.go
  3. 1 4
      go.mod
  4. 0 8
      go.sum
  5. 24 54
      utils/logs.go

+ 3 - 22
controllers/base_auth.go

@@ -7,7 +7,6 @@ import (
 	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/services/data"
 	"fmt"
-	"github.com/sirupsen/logrus"
 	"net/http"
 	"net/url"
 	"strconv"
@@ -293,7 +292,7 @@ func (c *BaseAuthController) JSON(data interface{}, hasIndent bool, coding bool)
 	if requestBody == "" {
 		requestBody = c.Ctx.Input.URI()
 	}
-	c.logUri(data, requestBody, ip)
+	c.logUri(content, requestBody, ip)
 	// 如果不是debug分支的话,那么需要加密返回
 	if utils.RunMode != "debug" {
 		content = utils.DesBase64Encrypt(content)
@@ -356,7 +355,7 @@ func GetSysUserRoleTypeCode(roleTypeCode string) string {
 	return ""
 }
 
-func (c *BaseAuthController) logUri(data interface{}, requestBody, ip string) {
+func (c *BaseAuthController) logUri(respContent []byte, requestBody, ip string) {
 	authorization := ""
 	method := c.Ctx.Input.Method()
 	uri := c.Ctx.Input.URI()
@@ -394,24 +393,6 @@ func (c *BaseAuthController) logUri(data interface{}, requestBody, ip string) {
 		}
 	}
 
-	var reqData interface{}
-	err := json.Unmarshal([]byte(requestBody), &reqData)
-	if err != nil {
-		utils.ApiLog.WithFields(logrus.Fields{
-			"uri":           c.Ctx.Input.URI(),
-			"authorization": authorization,
-			"requestBody":   requestBody,
-			"responseBody":  data,
-			"ip":            ip,
-		}).Info("请求详情")
-	} else {
-		utils.ApiLog.WithFields(logrus.Fields{
-			"uri":           c.Ctx.Input.URI(),
-			"authorization": authorization,
-			"requestBody":   reqData,
-			"responseBody":  data,
-			"ip":            ip,
-		}).Info("请求详情")
-	}
+	utils.ApiLog.Info("uri:%s, authorization:%s, requestBody:%s, responseBody:%s, ip:%s", c.Ctx.Input.URI(), authorization, requestBody, respContent, ip)
 	return
 }

+ 4 - 37
controllers/base_common.go

@@ -8,7 +8,6 @@ import (
 	"eta/eta_api/utils"
 	"fmt"
 	"github.com/beego/beego/v2/server/web"
-	"github.com/sirupsen/logrus"
 	"net/http"
 	"net/url"
 	"strings"
@@ -27,21 +26,7 @@ func (c *BaseCommonController) Prepare() {
 		requestBody, _ = url.QueryUnescape(string(c.Ctx.Input.RequestBody))
 	}
 	ip := c.Ctx.Input.IP()
-	var reqData interface{}
-	err := json.Unmarshal([]byte(requestBody), &reqData)
-	if err != nil {
-		utils.ApiLog.WithFields(logrus.Fields{
-			"uri":         c.Ctx.Input.URI(),
-			"requestBody": requestBody,
-			"ip":          ip,
-		}).Info("Prepare 请求详情")
-	} else {
-		utils.ApiLog.WithFields(logrus.Fields{
-			"uri":         c.Ctx.Input.URI(),
-			"requestBody": reqData,
-			"ip":          ip,
-		}).Info("Prepare 请求详情")
-	}
+	utils.ApiLog.Info("uri:%s, requestBody:%s, responseBody:%s, ip:%s", c.Ctx.Input.URI(), requestBody, ip)
 }
 
 func (c *BaseCommonController) ServeJSON(encoding ...bool) {
@@ -116,7 +101,7 @@ func (c *BaseCommonController) JSON(data interface{}, hasIndent bool, coding boo
 	fmt.Println("params")
 	fmt.Println(params)
 	requestBody, _ := url.QueryUnescape(string(c.Ctx.Input.RequestBody))
-	c.logUri(data, requestBody, ip)
+	c.logUri(content, requestBody, ip)
 	// 如果不是debug分支的话,那么需要加密返回
 	if utils.RunMode != "debug" {
 		content = utils.DesBase64Encrypt(content)
@@ -129,7 +114,7 @@ func (c *BaseCommonController) JSON(data interface{}, hasIndent bool, coding boo
 	return c.Ctx.Output.Body(content)
 }
 
-func (c *BaseCommonController) logUri(data interface{}, requestBody, ip string) {
+func (c *BaseCommonController) logUri(respContent []byte, requestBody, ip string) {
 	authorization := ""
 	method := c.Ctx.Input.Method()
 	uri := c.Ctx.Input.URI()
@@ -167,24 +152,6 @@ func (c *BaseCommonController) logUri(data interface{}, requestBody, ip string)
 		}
 	}
 
-	var reqData interface{}
-	err := json.Unmarshal([]byte(requestBody), &reqData)
-	if err != nil {
-		utils.ApiLog.WithFields(logrus.Fields{
-			"uri":           c.Ctx.Input.URI(),
-			"authorization": authorization,
-			"requestBody":   requestBody,
-			"responseBody":  data,
-			"ip":            ip,
-		}).Info("请求详情")
-	} else {
-		utils.ApiLog.WithFields(logrus.Fields{
-			"uri":           c.Ctx.Input.URI(),
-			"authorization": authorization,
-			"requestBody":   reqData,
-			"responseBody":  data,
-			"ip":            ip,
-		}).Info("请求详情")
-	}
+	utils.ApiLog.Info("uri:%s, authorization:%s, requestBody:%s, responseBody:%s, ip:%s", c.Ctx.Input.URI(), authorization, requestBody, respContent, ip)
 	return
 }

+ 1 - 4
go.mod

@@ -20,7 +20,6 @@ require (
 	github.com/gonum/stat v0.0.0-20181125101827-41a0da705a5b
 	github.com/gorilla/websocket v1.5.0
 	github.com/kgiannakakis/mp3duration v0.0.0-20191013070830-d834f8d5ed53
-	github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible
 	github.com/minio/minio-go/v7 v7.0.63
 	github.com/mojocn/base64Captcha v1.3.5
 	github.com/nosixtools/solarlunar v0.0.0-20211112060703-1b6dea7b4a19
@@ -28,7 +27,6 @@ require (
 	github.com/rdlucklib/rdluck_tools v1.0.3
 	github.com/shopspring/decimal v1.3.1
 	github.com/silenceper/wechat/v2 v2.1.3
-	github.com/sirupsen/logrus v1.9.3
 	github.com/tealeg/xlsx v1.0.5
 	github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.541
 	github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ses v1.0.541
@@ -74,12 +72,10 @@ require (
 	github.com/google/uuid v1.3.0 // indirect
 	github.com/hashicorp/golang-lru v0.5.4 // indirect
 	github.com/jmespath/go-jmespath v0.4.0 // indirect
-	github.com/jonboulle/clockwork v0.4.0 // indirect
 	github.com/josharian/intern v1.0.0 // indirect
 	github.com/json-iterator/go v1.1.12 // indirect
 	github.com/klauspost/compress v1.16.7 // indirect
 	github.com/klauspost/cpuid/v2 v2.2.5 // indirect
-	github.com/lestrrat-go/strftime v1.0.6 // indirect
 	github.com/lib/pq v1.10.7 // indirect
 	github.com/mailru/easyjson v0.7.7 // indirect
 	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
@@ -99,6 +95,7 @@ require (
 	github.com/rs/xid v1.5.0 // indirect
 	github.com/satori/go.uuid v1.2.0 // indirect
 	github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18 // indirect
+	github.com/sirupsen/logrus v1.9.3 // indirect
 	github.com/spf13/cast v1.5.0 // indirect
 	github.com/stretchr/testify v1.8.1 // indirect
 	github.com/tidwall/gjson v1.14.1 // indirect

+ 0 - 8
go.sum

@@ -239,8 +239,6 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y
 github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
 github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
 github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
-github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4=
-github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc=
 github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
 github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
 github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
@@ -267,12 +265,6 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 github.com/ledisdb/ledisdb v0.0.0-20200510135210-d35789ec47e6/go.mod h1:n931TsDuKuq+uX4v1fulaMbA/7ZLLhjc85h7chZGBCQ=
-github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2ttpEmkA4aQ3j4u9dStX2t4M8UM6qqNsG8=
-github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is=
-github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible h1:Y6sqxHMyB1D2YSzWkLibYKgg+SwmyFU9dF2hn6MdTj4=
-github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible/go.mod h1:ZQnN8lSECaebrkQytbHj4xNgtg8CR7RYXnPok8e0EHA=
-github.com/lestrrat-go/strftime v1.0.6 h1:CFGsDEt1pOpFNU+TJB0nhz9jl+K0hZSLE205AhTIGQQ=
-github.com/lestrrat-go/strftime v1.0.6/go.mod h1:f7jQKgV5nnJpYgdEasS+/y7EsTb8ykN2z68n3TtcTaw=
 github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
 github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
 github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw=

+ 24 - 54
utils/logs.go

@@ -3,11 +3,8 @@ package utils
 import (
 	"encoding/json"
 	"github.com/beego/beego/v2/core/logs"
-	rotatelogs "github.com/lestrrat-go/file-rotatelogs"
-	"github.com/sirupsen/logrus"
 	"os"
 	"path"
-	"time"
 )
 
 const (
@@ -17,9 +14,9 @@ const (
 	DefaultApiLogPath = "./etalogs/apilog"
 )
 
-var FileLog = logrus.New()
-var ApiLog = logrus.New()
-var FileLogData = logrus.New()
+var FileLog *logs.BeeLogger
+var ApiLog *logs.BeeLogger
+var FileLogData *logs.BeeLogger
 var Binlog *logs.BeeLogger
 
 func init() {
@@ -38,17 +35,13 @@ func init() {
 
 	// 打开文件
 	logFileName := path.Join(logPath, logFile)
+	FileLog = logs.NewLogger(1000000)
+	logConf := getDefaultLogConfig()
 
-	rolling(FileLog, logFileName, LogMaxDays)
-	// 设置日志输出JSON格式
-	jsonFormat := new(logrus.JSONFormatter)
-	jsonFormat.DisableHTMLEscape = true
-	jsonFormat.TimestampFormat = HlbFormatDateTime
-	FileLog.SetFormatter(jsonFormat)
-	FileLog.SetReportCaller(true)
-	//LogInstance.SetFormatter(&logrus.TextFormatter{})
-	// 设置日志记录级别
-	//FileLog.SetLevel(logrus.DebugLevel)
+	logConf.FileName = logFileName
+	b, _ := json.Marshal(logConf)
+	FileLog.SetLogger(logs.AdapterFile, string(b))
+	FileLog.EnableFuncCallDepth(true)
 
 	initBinlog()
 	initApiLog()
@@ -84,8 +77,8 @@ func initBinlog() {
 	logConf := getDefaultLogConfig()
 
 	logConf.FileName = logFileName
-	logConf.MaxLines = 10000000
-	logConf.Rotate = true
+	//logConf.MaxLines = 10000000
+	//logConf.Rotate = true
 	b, _ := json.Marshal(logConf)
 	Binlog.SetLogger(logs.AdapterFile, string(b))
 	Binlog.EnableFuncCallDepth(true)
@@ -104,13 +97,13 @@ func initApiLog() {
 
 	// 打开文件
 	logFileName := path.Join(logPath, logFile)
+	ApiLog = logs.NewLogger(1000000)
+	logConf := getDefaultLogConfig()
 
-	rolling(ApiLog, logFileName, LogMaxDays)
-	// 设置日志输出JSON格式
-	jsonFormat := new(logrus.JSONFormatter)
-	jsonFormat.DisableHTMLEscape = true
-	jsonFormat.TimestampFormat = HlbFormatDateTime
-	ApiLog.SetFormatter(jsonFormat)
+	logConf.FileName = logFileName
+	b, _ := json.Marshal(logConf)
+	ApiLog.SetLogger(logs.AdapterFile, string(b))
+	ApiLog.EnableFuncCallDepth(true)
 }
 
 func initFileLogData() {
@@ -126,19 +119,19 @@ func initFileLogData() {
 
 	// 打开文件
 	logFileName := path.Join(logPath, logFile)
+	FileLogData = logs.NewLogger(1000000)
+	logConf := getDefaultLogConfig()
 
-	rolling(FileLogData, logFileName, LogMaxDays)
-	// 设置日志输出JSON格式
-	jsonFormat := new(logrus.JSONFormatter)
-	jsonFormat.DisableHTMLEscape = true
-	jsonFormat.TimestampFormat = HlbFormatDateTime
-	FileLogData.SetFormatter(jsonFormat)
+	logConf.FileName = logFileName
+	b, _ := json.Marshal(logConf)
+	FileLogData.SetLogger(logs.AdapterFile, string(b))
+	FileLogData.EnableFuncCallDepth(true)
 }
 
 func getDefaultLogConfig() logConfig {
 	return logConfig{
 		FileName: "",
-		MaxLines: 0,
+		MaxLines: 10000000,
 		MaxSize:  1 << 28,
 		Daily:    true,
 		MaxDays:  LogMaxDays, //我就是喜欢31天,咋滴,不喜欢你就自己改-_-!
@@ -147,26 +140,3 @@ func getDefaultLogConfig() logConfig {
 		//Perm:     "",
 	}
 }
-
-// 日志滚动设置
-func rolling(fLog *logrus.Logger, logFileName string, maxAge int) {
-	// 设置输出
-	if maxAge == 0 {
-		maxAge = LogMaxDays
-	}
-	content, err := rotatelogs.New(
-		logFileName+"-%Y%m%d",
-		//rotatelogs.WithLinkName("./log/cli.log"), // 生成软链,指向最新日志文件
-		rotatelogs.WithClock(rotatelogs.Local),
-		//MaxAge and RotationCount cannot be both set 两者不能同时设置
-		rotatelogs.WithRotationSize(1<<28),                        //256mb
-		rotatelogs.WithMaxAge(time.Duration(maxAge*24)*time.Hour), //clear
-		//rotatelogs.WithRotationCount(5), //number 默认7份 大于7份 或到了清理时间 开始清理
-		rotatelogs.WithRotationTime(24*time.Hour), //rotate 最小为1分钟轮询。默认60s 低于1分钟就按1分钟来
-	)
-	if err != nil {
-		panic("failed to create rotatelogs: " + err.Error())
-	}
-	fLog.SetOutput(content)
-	return
-}