@@ -6,22 +6,37 @@ import (
6
6
"fmt"
7
7
"io"
8
8
"os"
9
- "github.com/daviddengcn/go-colortext"
10
9
)
11
10
12
11
var stdout io.Writer = os .Stdout
13
12
13
+ var isColorful = (os .Getenv ("TERM" ) != "" && os .Getenv ("TERM" ) != "dumb" ) ||
14
+ os .Getenv ("ConEmuANSI" ) == "ON"
15
+
16
+ // 0, Black; 1, Red; 2, Green; 3, Yellow; 4, Blue; 5, Purple; 6, Cyan; 7, White
17
+ var ColorBytes = [... ][]byte {
18
+ []byte ("\x1b [0;34m" ), // FINEST, Blue
19
+ []byte ("\x1b [0;36m" ), // FINE, Cyan
20
+ []byte ("\x1b [0;32m" ), // DEBUG, Green
21
+ []byte ("\x1b [0;35m" ), // TRACE, Purple
22
+ nil , // INFO, Default
23
+ []byte ("\x1b [1;33m" ), // WARNING, Yellow
24
+ []byte ("\x1b [0;31m" ), // ERROR, Red
25
+ []byte ("\x1b [0;31m;47m" ), // CRITICAL, Red - White
26
+ }
27
+ var ColorReset = []byte ("\x1b [0m" )
28
+
14
29
// This is the standard writer that prints to standard output.
15
30
type ConsoleLogWriter struct {
16
- iow io.Writer
31
+ out io.Writer
17
32
color bool
18
33
format string
19
34
}
20
35
21
36
// This creates a new ConsoleLogWriter
22
37
func NewConsoleLogWriter () * ConsoleLogWriter {
23
38
c := & ConsoleLogWriter {
24
- iow : stdout ,
39
+ out : stdout ,
25
40
color : false ,
26
41
format : "[%T %D %Z] [%L] (%S) %M" ,
27
42
}
@@ -46,22 +61,8 @@ func (c *ConsoleLogWriter) Close() {
46
61
47
62
func (c * ConsoleLogWriter ) LogWrite (rec * LogRecord ) {
48
63
if c .color {
49
- switch rec .Level {
50
- case CRITICAL :
51
- ct .ChangeColor (ct .Red , true , ct .White , false )
52
- case ERROR :
53
- ct .ChangeColor (ct .Red , false , 0 , false )
54
- case WARNING :
55
- ct .ChangeColor (ct .Yellow , false , 0 , false )
56
- case INFO :
57
- ct .ChangeColor (ct .Green , false , 0 , false )
58
- case DEBUG :
59
- ct .ChangeColor (ct .Magenta , false , 0 , false )
60
- case TRACE :
61
- ct .ChangeColor (ct .Cyan , false , 0 , false )
62
- default :
63
- }
64
- defer ct .ResetColor ()
64
+ c .out .Write (ColorBytes [rec .Level ])
65
+ defer c .out .Write (ColorReset )
65
66
}
66
- fmt .Fprint (c .iow , FormatLogRecord (c .format , rec ))
67
+ fmt .Fprint (c .out , FormatLogRecord (c .format , rec ))
67
68
}
0 commit comments