From e74ab13b42005e6d8964877051edb71aa3b52c4e Mon Sep 17 00:00:00 2001 From: Hannah Marsh Date: Wed, 2 Oct 2024 12:18:36 -0400 Subject: [PATCH] Remove colors for non-debug --- colorFormatter.go | 175 ++++++++++++++++++++++++++++++++++------------ example/main.go | 64 ++++++++--------- logrusAdapter.go | 18 ++--- prettyLogger.go | 9 ++- 4 files changed, 179 insertions(+), 87 deletions(-) diff --git a/colorFormatter.go b/colorFormatter.go index e5c4998..ee07d34 100644 --- a/colorFormatter.go +++ b/colorFormatter.go @@ -8,10 +8,11 @@ import ( type ColoredFormatter struct { TimestampFormat string + LogLevel string } func (f *ColoredFormatter) Format(entry *logrus.Entry) ([]byte, error) { - levelColor := getColorByLevel(entry.Level) + levelColor := f.getColorByLevel(entry.Level) timestamp := entry.Time.Format(f.TimestampFormat) message := fmt.Sprintf("%s %-18s %s\n", @@ -28,89 +29,177 @@ func (f *ColoredFormatter) Format(entry *logrus.Entry) ([]byte, error) { return []byte(message), nil } -func getColorByLevel(level logrus.Level) func(string) string { +func (f *ColoredFormatter) getColorByLevel(level logrus.Level) func(string) string { switch level { case logrus.DebugLevel: - return ColorCyan + return f.ColorCyan case logrus.InfoLevel: - return ColorGreen + return f.ColorGreen case logrus.WarnLevel: - return ColorYellow + return f.ColorYellow case logrus.ErrorLevel, logrus.FatalLevel, logrus.PanicLevel: - return ColorRed + return f.ColorRed default: - return ColorGrey + return f.ColorGrey } } -func ColorRed(s string) string { - return fmt.Sprintf("\033[31m%s\033[0m", s) +func (f *ColoredFormatter) ColorRed(s string) string { + if f.LogLevel == "debug" { + return fmt.Sprintf("\033[31m%s\033[0m", s) + } else { + return s + } } -func ColorBrightRed(s string) string { - return fmt.Sprintf("\033[91m%s\033[0m", s) +func (f *ColoredFormatter) ColorBrightRed(s string) string { + if f.LogLevel == "debug" { + return fmt.Sprintf("\033[91m%s\033[0m", s) + } else { + return s + } } -func ColorYellow(s string) string { - return fmt.Sprintf("\033[33m%s\033[0m", s) +func (f *ColoredFormatter) ColorYellow(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[33m%s\033[0m", s) + } else { + return s + } } -func ColorBrightYellow(s string) string { - return fmt.Sprintf("\033[93m%s\033[0m", s) +func (f *ColoredFormatter) ColorBrightYellow(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[93m%s\033[0m", s) + } else { + return s + } } -func ColorGreen(s string) string { - return fmt.Sprintf("\033[32m%s\033[0m", s) +func (f *ColoredFormatter) ColorGreen(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[32m%s\033[0m", s) + } else { + return s + } } -func ColorBrightGreen(s string) string { - return fmt.Sprintf("\033[92m%s\033[0m", s) +func (f *ColoredFormatter) ColorBrightGreen(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[92m%s\033[0m", s) + } else { + return s + } } -func ColorCyan(s string) string { - return fmt.Sprintf("\033[36m%s\033[0m", s) +func (f *ColoredFormatter) ColorCyan(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[36m%s\033[0m", s) + } else { + return s + } } -func ColorBrightCyan(s string) string { - return fmt.Sprintf("\033[96m%s\033[0m", s) +func (f *ColoredFormatter) ColorBrightCyan(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[96m%s\033[0m", s) + } else { + return s + } } -func ColorBlue(s string) string { - return fmt.Sprintf("\033[34m%s\033[0m", s) +func (f *ColoredFormatter) ColorBlue(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[34m%s\033[0m", s) + } else { + return s + } } -func ColorBrightBlue(s string) string { - return fmt.Sprintf("\033[94m%s\033[0m", s) +func (f *ColoredFormatter) ColorBrightBlue(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[94m%s\033[0m", s) + } else { + return s + } } -func ColorPurple(s string) string { - return fmt.Sprintf("\033[35m%s\033[0m", s) // Pink/magenta color +func (f *ColoredFormatter) ColorPurple(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[35m%s\033[0m", s) // Pink/magenta color + } else { + return s + } } -func ColorPink(s string) string { - return fmt.Sprintf("\033[95m%s\033[0m", s) +func (f *ColoredFormatter) ColorPink(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[95m%s\033[0m", s) + } else { + return s + } } -func ColorBrightWhite(s string) string { - return fmt.Sprintf("\033[97m%s\033[0m", s) +func (f *ColoredFormatter) ColorBrightWhite(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[97m%s\033[0m", s) + } else { + return s + } } -func ColorGrey(s string) string { - return fmt.Sprintf("\033[37m%s\033[0m", s) +func (f *ColoredFormatter) ColorGrey(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[37m%s\033[0m", s) + } else { + return s + } } -func ColorBlack(s string) string { - return fmt.Sprintf("\033[90m%s\033[0m", s) +func (f *ColoredFormatter) ColorBlack(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[90m%s\033[0m", s) + } else { + return s + } } -func Bold(s string) string { - return fmt.Sprintf("\033[1m%s\033[0m", s) // Bold text +func (f *ColoredFormatter) Bold(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[1m%s\033[0m", s) // Bold text + } else { + return s + } } -func Italic(s string) string { - return fmt.Sprintf("\033[3m%s\033[0m", s) // Italic text +func (f *ColoredFormatter) Italic(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[3m%s\033[0m", s) // Italic text + } else { + return s + } } -func Underline(s string) string { - return fmt.Sprintf("\033[4m%s\033[0m", s) // Underlined text +func (f *ColoredFormatter) Underline(s string) string { + if f.LogLevel == "debug" { + + return fmt.Sprintf("\033[4m%s\033[0m", s) // Underlined text + } else { + return s + } } diff --git a/example/main.go b/example/main.go index f4a3b8d..7870498 100644 --- a/example/main.go +++ b/example/main.go @@ -27,38 +27,38 @@ func FuncB(param int, strParam string) { func main() { - fmt.Printf(PrettyLogger.ColorRed("Red:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorRed("Bold\t")) + PrettyLogger.ColorRed(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorRed(PrettyLogger.Underline("Underline\n"))) - - fmt.Printf(PrettyLogger.ColorBrightRed("Bright Red:\t") + PrettyLogger.Bold(PrettyLogger.ColorBrightRed("Bold\t")) + PrettyLogger.ColorBrightRed(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBrightRed(PrettyLogger.Underline("Underline\n"))) - - fmt.Printf(PrettyLogger.ColorBrightYellow("Bright Yellow:\t") + PrettyLogger.Bold(PrettyLogger.ColorBrightYellow("Bold\t")) + PrettyLogger.ColorBrightYellow(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBrightYellow(PrettyLogger.Underline("Underline\n"))) - - fmt.Printf(PrettyLogger.ColorYellow("Yellow:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorYellow("Bold\t")) + PrettyLogger.ColorYellow(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorYellow(PrettyLogger.Underline("Underline\n"))) - - fmt.Printf(PrettyLogger.ColorGreen("Green:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorGreen("Bold\t")) + PrettyLogger.ColorGreen(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorGreen(PrettyLogger.Underline("Underline\n"))) - - fmt.Printf(PrettyLogger.ColorBrightGreen("Bright Green:\t") + PrettyLogger.Bold(PrettyLogger.ColorBrightGreen("Bold\t")) + PrettyLogger.ColorBrightGreen(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBrightGreen(PrettyLogger.Underline("Underline\n"))) - - fmt.Printf(PrettyLogger.ColorCyan("Cyan:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorCyan("Bold\t")) + PrettyLogger.ColorCyan(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorCyan(PrettyLogger.Underline("Underline\n"))) - - fmt.Printf(PrettyLogger.ColorBrightCyan("Bright Cyan:\t") + PrettyLogger.Bold(PrettyLogger.ColorBrightCyan("Bold\t")) + PrettyLogger.ColorBrightCyan(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBrightCyan(PrettyLogger.Underline("Underline\n"))) - - fmt.Printf(PrettyLogger.ColorBlue("Blue:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorBlue("Bold\t")) + PrettyLogger.ColorBlue(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBlue(PrettyLogger.Underline("Underline\n"))) - - fmt.Printf(PrettyLogger.ColorBrightBlue("Bright Blue:\t") + PrettyLogger.Bold(PrettyLogger.ColorBrightBlue("Bold\t")) + PrettyLogger.ColorBrightBlue(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBrightBlue(PrettyLogger.Underline("Underline\n"))) - - fmt.Printf(PrettyLogger.ColorPurple("Purple:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorPurple("Bold\t")) + PrettyLogger.ColorPurple(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorPurple(PrettyLogger.Underline("Underline\n"))) - - fmt.Printf(PrettyLogger.ColorPink("Pink:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorPink("Bold\t")) + PrettyLogger.ColorPink(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorPink(PrettyLogger.Underline("Underline\n"))) - - fmt.Printf(PrettyLogger.ColorBrightWhite("Bright White:\t") + PrettyLogger.Bold(PrettyLogger.ColorBrightWhite("Bold\t")) + PrettyLogger.ColorBrightWhite(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBrightWhite(PrettyLogger.Underline("Underline\n"))) - fmt.Printf("White:\t\t" + PrettyLogger.Bold("Bold\t") + PrettyLogger.Italic("Italic\t") + PrettyLogger.Underline("Underline\n")) - - fmt.Printf(PrettyLogger.ColorGrey("Grey:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorGrey("Bold\t")) + PrettyLogger.ColorGrey(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorGrey(PrettyLogger.Underline("Underline\n"))) - - fmt.Printf(PrettyLogger.ColorBlack("Black:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorBlack("Bold\t")) + PrettyLogger.ColorBlack(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBlack(PrettyLogger.Underline("Underline\n"))) - - PrettyLogger.SetUpLogrusAndSlog("debug") + //fmt.Printf(PrettyLogger.ColorRed("Red:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorRed("Bold\t")) + PrettyLogger.ColorRed(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorRed(PrettyLogger.Underline("Underline\n"))) + // + //fmt.Printf(PrettyLogger.ColorBrightRed("Bright Red:\t") + PrettyLogger.Bold(PrettyLogger.ColorBrightRed("Bold\t")) + PrettyLogger.ColorBrightRed(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBrightRed(PrettyLogger.Underline("Underline\n"))) + // + //fmt.Printf(PrettyLogger.ColorBrightYellow("Bright Yellow:\t") + PrettyLogger.Bold(PrettyLogger.ColorBrightYellow("Bold\t")) + PrettyLogger.ColorBrightYellow(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBrightYellow(PrettyLogger.Underline("Underline\n"))) + // + //fmt.Printf(PrettyLogger.ColorYellow("Yellow:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorYellow("Bold\t")) + PrettyLogger.ColorYellow(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorYellow(PrettyLogger.Underline("Underline\n"))) + // + //fmt.Printf(PrettyLogger.ColorGreen("Green:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorGreen("Bold\t")) + PrettyLogger.ColorGreen(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorGreen(PrettyLogger.Underline("Underline\n"))) + // + //fmt.Printf(PrettyLogger.ColorBrightGreen("Bright Green:\t") + PrettyLogger.Bold(PrettyLogger.ColorBrightGreen("Bold\t")) + PrettyLogger.ColorBrightGreen(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBrightGreen(PrettyLogger.Underline("Underline\n"))) + // + //fmt.Printf(PrettyLogger.ColorCyan("Cyan:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorCyan("Bold\t")) + PrettyLogger.ColorCyan(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorCyan(PrettyLogger.Underline("Underline\n"))) + // + //fmt.Printf(PrettyLogger.ColorBrightCyan("Bright Cyan:\t") + PrettyLogger.Bold(PrettyLogger.ColorBrightCyan("Bold\t")) + PrettyLogger.ColorBrightCyan(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBrightCyan(PrettyLogger.Underline("Underline\n"))) + // + //fmt.Printf(PrettyLogger.ColorBlue("Blue:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorBlue("Bold\t")) + PrettyLogger.ColorBlue(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBlue(PrettyLogger.Underline("Underline\n"))) + // + //fmt.Printf(PrettyLogger.ColorBrightBlue("Bright Blue:\t") + PrettyLogger.Bold(PrettyLogger.ColorBrightBlue("Bold\t")) + PrettyLogger.ColorBrightBlue(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBrightBlue(PrettyLogger.Underline("Underline\n"))) + // + //fmt.Printf(PrettyLogger.ColorPurple("Purple:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorPurple("Bold\t")) + PrettyLogger.ColorPurple(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorPurple(PrettyLogger.Underline("Underline\n"))) + // + //fmt.Printf(PrettyLogger.ColorPink("Pink:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorPink("Bold\t")) + PrettyLogger.ColorPink(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorPink(PrettyLogger.Underline("Underline\n"))) + // + //fmt.Printf(PrettyLogger.ColorBrightWhite("Bright White:\t") + PrettyLogger.Bold(PrettyLogger.ColorBrightWhite("Bold\t")) + PrettyLogger.ColorBrightWhite(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBrightWhite(PrettyLogger.Underline("Underline\n"))) + //fmt.Printf("White:\t\t" + PrettyLogger.Bold("Bold\t") + PrettyLogger.Italic("Italic\t") + PrettyLogger.Underline("Underline\n")) + // + //fmt.Printf(PrettyLogger.ColorGrey("Grey:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorGrey("Bold\t")) + PrettyLogger.ColorGrey(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorGrey(PrettyLogger.Underline("Underline\n"))) + // + //fmt.Printf(PrettyLogger.ColorBlack("Black:\t\t") + PrettyLogger.Bold(PrettyLogger.ColorBlack("Bold\t")) + PrettyLogger.ColorBlack(PrettyLogger.Italic("Italic\t")) + PrettyLogger.ColorBlack(PrettyLogger.Underline("Underline\n"))) + + PrettyLogger.SetUpLogrusAndSlog("info") err2 := pkg.F3() diff --git a/logrusAdapter.go b/logrusAdapter.go index d65e8c2..1f15955 100644 --- a/logrusAdapter.go +++ b/logrusAdapter.go @@ -57,12 +57,12 @@ func (h *LogrusHandler) Enabled(_ context.Context, _ slog.Level) bool { var functionNames sync.Map var colorFuncs = []func(string) string{ - ColorBrightBlue, - ColorPurple, - ColorPink, - ColorBrightCyan, - ColorBrightYellow, - ColorBrightGreen, + cf.ColorBrightBlue, + cf.ColorPurple, + cf.ColorPink, + cf.ColorBrightCyan, + cf.ColorBrightYellow, + cf.ColorBrightGreen, } var index int64 @@ -87,7 +87,7 @@ func (h *LogrusHandler) Handle(ctx context.Context, rec slog.Record) error { printMsg := "" if rec.Level != slog.LevelError { - fnName := Italic(getFuncNameWithColor(GetFuncNameWithSkip(4))) + fnName := cf.Italic(getFuncNameWithColor(GetFuncNameWithSkip(4))) loc := getLocation(4) if len(fields) > 0 { //str := "" @@ -104,7 +104,7 @@ func (h *LogrusHandler) Handle(ctx context.Context, rec slog.Record) error { for i, k := range keys { paramStr := interfaceToString(fields[k]) - vars[i] = fmt.Sprintf("%s=%s", Italic(ColorCyan(k)), Bold(paramStr)) + vars[i] = fmt.Sprintf("%s=%s", cf.Italic(cf.ColorCyan(k)), cf.Bold(paramStr)) //str = str + fmt.Sprintf("%s=%v, ", k, fields[k]) } str := strings.Join(vars, ", ") @@ -134,7 +134,7 @@ func (h *LogrusHandler) Handle(ctx context.Context, rec slog.Record) error { ew = strings.TrimSpace(ew) i := strings.Index(ew, "\n") fmt.Println() - entry.Error(ColorRed(ew[:i]) + "\n" + ew[i+1:] + "\n") + entry.Error(cf.ColorRed(ew[:i]) + "\n" + ew[i+1:] + "\n") b = true } //} diff --git a/prettyLogger.go b/prettyLogger.go index 6b2819b..6ea4f53 100644 --- a/prettyLogger.go +++ b/prettyLogger.go @@ -13,8 +13,11 @@ import ( "time" ) +var cf *ColoredFormatter = &ColoredFormatter{TimestampFormat: time.RFC3339, LogLevel: "info"} + func SetUpLogrusAndSlog(logLevel string) { - logrus.SetFormatter(&ColoredFormatter{TimestampFormat: time.RFC3339}) + cf = &ColoredFormatter{TimestampFormat: time.RFC3339, LogLevel: logLevel} + logrus.SetFormatter(cf) logrus.SetOutput(os.Stdout) logrus.SetLevel(ConvertLogLevel(logLevel)) @@ -169,10 +172,10 @@ func interfaceToString(field interface{}) string { inter := val.Field(j) if inter.CanInterface() { value := interfaceToString(inter.Interface()) - members = append(members, fmt.Sprintf("%s:%v", Italic(ColorGrey(typ.Field(j).Name)), value)) + members = append(members, fmt.Sprintf("%s:%v", cf.Italic(cf.ColorGrey(typ.Field(j).Name)), value)) } } - paramStr = fmt.Sprintf("%s{%s}", ColorGrey(typ.Name()), strings.Join(members, ", ")) + paramStr = fmt.Sprintf("%s{%s}", cf.ColorGrey(typ.Name()), strings.Join(members, ", ")) } else { paramStr = fmt.Sprintf("%v", paramValue.Interface()) }