golang logrus 通过自定义 logger.Formatter 格式化日志,为日志不同级别定义颜色,输出日志源代码溯源,日期等信息
golang logrus 通过自定义 logger.Formatter 格式化日志,为日志不同级别定义颜色,输出日志源代码溯源,日期等信息
custom-formatter.go 代码
复制
import (
"fmt"
"github.com/sirupsen/logrus"
"enum"
"runtime"
"strings"
"time"
)
const OtherRedFormat = enum.Red + "%s | %s | %s | %s:%d | %s\n" + enum.Reset
const WarnYellowFormat = enum.Yellow + "%s | %s | %s | %s:%d | %s\n" + enum.Reset
const InfoFormat = enum.Blue + "%s | " + enum.Green + "%s | " + enum.Blue + "%s | " + enum.Green + "%s:%d | " + enum.Cyan + "%s\n" + enum.Reset
type CustomFormatter struct {
Prefix string
}
func NewCustomFormatter(prefix string) CustomFormatter {
return CustomFormatter{
Prefix: prefix,
}
}
func (f *CustomFormatter) Format(entry *logrus.Entry) ([]byte, error) {
_, file, line, ok := runtime.Caller(8)
if !ok {
_ = "unknown"
line = 0
}
buffer := entry.Buffer
datetime := entry.Time.Format(time.DateTime)
level := strings.ToUpper(entry.Level.String())
switch entry.Level {
case logrus.DebugLevel, logrus.TraceLevel, logrus.ErrorLevel, logrus.FatalLevel, logrus.PanicLevel:
fmt.Fprintf(buffer, OtherRedFormat, f.Prefix, datetime, level, file, line, entry.Message)
case logrus.WarnLevel:
fmt.Fprintf(buffer, WarnYellowFormat, f.Prefix, datetime, level, file, line, entry.Message)
case logrus.InfoLevel:
fmt.Fprintf(buffer, InfoFormat, f.Prefix, datetime, level, file, line, entry.Message)
}
return buffer.Bytes(), nil
}
enum.go 代码
复制
type ConsoleColorEnum string
const (
Green = "\033[32m"
White = "\033[37m"
Yellow = "\033[33m"
Red = "\033[31m"
Blue = "\033[34m"
Magenta = "\033[35m"
Cyan = "\033[36m"
Reset = "\033[0m"
)
log.go 代码
复制
import (
"github.com/sirupsen/logrus"
"strings"
)
var log *logrus.Logger
func InitLog(logger *logrus.Logger) {
log = logger
}
func GetLog() *logrus.Logger {
return log
}
func NewDefaultLog(prefix string,logLevel *logrus.Level) *logrus.Logger {
logger := logrus.New()
logger.SetFormatter(&CustomFormatter{
Prefix: prefix,
})
return logger
}
作者:https://blog.xn--rpv331d.com/望舒
链接:https://blog.xn--rpv331d.com/望舒/blog/52
转载注意保留文章出处...
0
0
0
94
No data