From 11e6c2829bdf2eae8a674d6616a563356eaebb43 Mon Sep 17 00:00:00 2001 From: cloudaice Date: Tue, 21 Jan 2014 17:57:37 +0800 Subject: [PATCH] diffrent level logs display diffrent color --- logs/console.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/logs/console.go b/logs/console.go index c5fa2380..dd271ff1 100644 --- a/logs/console.go +++ b/logs/console.go @@ -6,6 +6,25 @@ import ( "os" ) +type Brush func(string) string + +func NewBrush(color string) Brush { + pre := "\033[" + reset := "\033[0m" + return func(text string) string { + return pre + color + "m" + text + reset + } +} + +var colors = []Brush{ + NewBrush("1;36"), // Trace cyan + NewBrush("1;34"), // Debug blue + NewBrush("1;32"), // Info green + NewBrush("1;33"), // Warn yellow + NewBrush("1;31"), // Error red + NewBrush("1;35"), // Critical purple +} + // ConsoleWriter implements LoggerInterface and writes messages to terminal. type ConsoleWriter struct { lg *log.Logger @@ -35,7 +54,7 @@ func (c *ConsoleWriter) WriteMsg(msg string, level int) error { if level < c.Level { return nil } - c.lg.Println(msg) + c.lg.Println(colors[level](msg)) return nil }