From 32f903f40a4eb9a173b2bb6864dafdf1092740d0 Mon Sep 17 00:00:00 2001 From: Untone Date: Sat, 2 Mar 2024 13:28:20 +0300 Subject: [PATCH] logs-fix-11 --- server/logs/text.go | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/server/logs/text.go b/server/logs/text.go index 9a1b227..0f86058 100644 --- a/server/logs/text.go +++ b/server/logs/text.go @@ -2,28 +2,39 @@ package logs import ( "fmt" - "strings" "path/filepath" + "strings" "github.com/sirupsen/logrus" ) -// LogTextFormatter is a custom log formatter for text output type LogTextFormatter struct { logrus.Formatter } -// Format helps formatting time to UTC func (u LogTextFormatter) Format(e *logrus.Entry) ([]byte, error) { - timestamp := e.Time.Format("2006-01-02 15:04:05.000") level := strings.ToUpper(e.Level.String()) message := e.Message + var color string + switch e.Level { + case logrus.DebugLevel: + color = "\033[36m" // cyan + case logrus.InfoLevel: + color = "\033[32m" // green + case logrus.WarnLevel: + color = "\033[33m" // yellow + case logrus.ErrorLevel, logrus.FatalLevel, logrus.PanicLevel: + color = "\033[31m" // red + default: + color = "\033[0m" // reset + } + if e.Caller != nil { file := filepath.Base(e.Caller.File) line := e.Caller.Line - return []byte(fmt.Sprintf("%s [%s] %s:%d %s\n", timestamp, level, file, line, message)), nil + return []byte(fmt.Sprintf("%s[%s] %s:%d %s%s\033[0m\n", color, level, file, line, message, color)), nil } - return []byte(fmt.Sprintf("%s [%s] %s\n", timestamp, level, message)), nil + return []byte(fmt.Sprintf("%s[%s] %s%s\033[0m\n", color, level, message, color)), nil }