From 150c5193e155ca64126a00f79137003d3132c263 Mon Sep 17 00:00:00 2001 From: nquidox Date: Sat, 21 Feb 2026 16:58:43 +0300 Subject: [PATCH] extended output + colors --- config/logging.go | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/config/logging.go b/config/logging.go index 29bbe39..d433839 100644 --- a/config/logging.go +++ b/config/logging.go @@ -41,8 +41,43 @@ func (f *CustomFormatter) Format(entry *logrus.Entry) ([]byte, error) { line = entry.Caller.Line } - logLine := fmt.Sprintf("[%s][%s][%s:%d] %s\n", - level, timestamp, file, line, msg) + colorCode := f.getLevelColor(entry.Level) + resetCode := "\033[0m" + coloredLevel := fmt.Sprintf("%s[%s]%s", colorCode, level, resetCode) + + errVal := entry.Data["error"] + if errVal == nil { + errVal = "\n" + } else { + errVal = fmt.Sprintf("---%v\n\n", errVal) + } + + cyanCode := f.getLevelColor(logrus.TraceLevel) + filename := fmt.Sprintf("%s[%s:%d]%s", cyanCode, file, line, resetCode) + + logLine := fmt.Sprintf("%s[%s]%v %s\n%v", + coloredLevel, timestamp, filename, msg, errVal) return []byte(logLine), nil } + +func (f *CustomFormatter) getLevelColor(level logrus.Level) string { + switch level { + case logrus.PanicLevel: + return "\033[35m" // Magenta + case logrus.FatalLevel: + return "\033[35m" // Magenta + case logrus.ErrorLevel: + return "\033[31m" // Red + case logrus.WarnLevel: + return "\033[33m" // Yellow + case logrus.InfoLevel: + return "\033[32m" // Green + case logrus.DebugLevel: + return "\033[34m" // Blue + case logrus.TraceLevel: + return "\033[36m" // Cyan + default: + return "\033[0m" // No color + } +}