1
1
package lib
2
2
3
3
import (
4
+ "os"
5
+
6
+ "github.com/gookit/color"
4
7
"github.com/gookit/slog"
5
8
"github.com/gookit/slog/handler"
6
- "os"
7
9
)
8
10
9
11
var (
17
19
TraceLogging = slog.Levels {slog .PanicLevel , slog .FatalLevel , slog .ErrorLevel , slog .WarnLevel , slog .InfoLevel , slog .NoticeLevel , slog .DebugLevel , slog .TraceLevel }
18
20
)
19
21
22
+ func NewStderrConsoleWithLF (lf slog.LevelFormattable ) * handler.ConsoleHandler {
23
+ h := handler .NewIOWriterWithLF (os .Stderr , lf )
24
+
25
+ // default use text formatter
26
+ f := slog .NewTextFormatter ()
27
+ // default enable color on console
28
+ f .WithEnableColor (color .SupportColor ())
29
+
30
+ h .SetFormatter (f )
31
+ return h
32
+ }
33
+
34
+ func NewStderrConsoleHandler (levels []slog.Level ) * handler.ConsoleHandler {
35
+ return NewStderrConsoleWithLF (slog .NewLvsFormatter (levels ))
36
+ }
37
+
20
38
func InitLogger (logLevel string ) * slog.Logger {
21
39
formatter := slog .NewTextFormatter ()
22
40
formatter .EnableColor = true
@@ -26,23 +44,23 @@ func InitLogger(logLevel string) *slog.Logger {
26
44
var h * handler.ConsoleHandler
27
45
switch logLevel {
28
46
case "ERROR" :
29
- h = handler . NewConsoleHandler (ErrorLogging )
47
+ h = NewStderrConsoleHandler (ErrorLogging )
30
48
formatter .SetTemplate (loggingTemplateDebug )
31
49
break
32
50
case "TRACE" :
33
- h = handler . NewConsoleHandler (TraceLogging )
51
+ h = NewStderrConsoleHandler (TraceLogging )
34
52
formatter .SetTemplate (loggingTemplateDebug )
35
53
break
36
54
case "DEBUG" :
37
- h = handler . NewConsoleHandler (DebugLogging )
55
+ h = NewStderrConsoleHandler (DebugLogging )
38
56
formatter .SetTemplate (loggingTemplateDebug )
39
57
break
40
58
case "NOTICE" :
41
- h = handler . NewConsoleHandler (NoticeLogging )
59
+ h = NewStderrConsoleHandler (NoticeLogging )
42
60
formatter .SetTemplate (loggingTemplateDebug )
43
61
break
44
62
default :
45
- h = handler . NewConsoleHandler (NormalLogging )
63
+ h = NewStderrConsoleHandler (NormalLogging )
46
64
formatter .SetTemplate (loggingTemplate )
47
65
}
48
66
0 commit comments