update log format

This commit is contained in:
engigu
2024-01-13 11:43:54 +08:00
parent 05fda3f764
commit 511cdb6106
8 changed files with 158 additions and 56 deletions
+42 -24
View File
@@ -1,44 +1,62 @@
package logging
import (
"bytes"
"fmt"
"github.com/engigu/logrus-prefixed-formatter"
"github.com/sirupsen/logrus"
"message-nest/pkg/setting"
"os"
"path/filepath"
"strings"
)
var Logger = logrus.New()
type MyFormatter struct{}
func (m *MyFormatter) Format(entry *logrus.Entry) ([]byte, error) {
var b *bytes.Buffer
if entry.Buffer != nil {
b = entry.Buffer
func getFuncOutStr(funcStr string) string {
parts := strings.Split(funcStr, ".")
if len(parts) > 0 {
return parts[len(parts)-1]
} else {
b = &bytes.Buffer{}
return ""
}
}
timestamp := entry.Time.Format("2006-01-02 15:04:05")
var newLog string
//HasCaller()为true才会有调用信息
if entry.HasCaller() {
fName := filepath.Base(entry.Caller.File)
newLog = fmt.Sprintf("[%s] [%s] [%s:%d %s] %s\n",
timestamp, entry.Level, fName, entry.Caller.Line, entry.Caller.Function, entry.Message)
} else {
newLog = fmt.Sprintf("[%s] [%s] %s\n", timestamp, entry.Level, entry.Message)
}
b.WriteString(newLog)
return b.Bytes(), nil
func CallerFormatter(funcStr string, fileStr string) string {
fName := filepath.Base(fileStr)
println(fileStr, funcStr, fName)
funcOut := getFuncOutStr(funcStr)
return fmt.Sprintf(" [%s %s]", fName, funcOut)
}
func Setup() {
formatter := new(prefixed.TextFormatter)
formatter.DisableTimestamp = false
formatter.ForceFormatting = false
formatter.FullTimestamp = true
formatter.CallerFormatter = CallerFormatter
formatter.TimestampFormat = "2006-01-02 15:04:05.999"
formatter.SetColorScheme(&prefixed.ColorScheme{
TimestampStyle: "cyan",
CallerStyle: "cyan",
PrefixStyle: "green",
})
Logger.Formatter = formatter
Logger.SetReportCaller(true)
Logger.SetFormatter(&MyFormatter{})
Logger.SetOutput(os.Stdout)
Logger.SetLevel(logrus.InfoLevel)
level := strings.ToLower(setting.AppSetting.LogLevel)
switch level {
case "debug":
Logger.SetLevel(logrus.DebugLevel)
case "info":
Logger.SetLevel(logrus.InfoLevel)
case "warn":
Logger.SetLevel(logrus.WarnLevel)
case "error":
Logger.SetLevel(logrus.ErrorLevel)
default:
Logger.SetLevel(logrus.DebugLevel)
}
}
+1
View File
@@ -11,6 +11,7 @@ type App struct {
JwtSecret string
RuntimeRootPath string
LogLevel string
}
var AppSetting = &App{}