@@ -3,6 +3,7 @@ package tracelog
3
3
import (
4
4
"fmt"
5
5
"github.com/pkg/errors"
6
+ "io"
6
7
"io/ioutil"
7
8
"log"
8
9
"os"
@@ -12,12 +13,17 @@ const (
12
13
NormalLogLevel = "NORMAL"
13
14
DevelLogLevel = "DEVEL"
14
15
timeFlags = log .LstdFlags | log .Lmicroseconds
16
+
17
+ infoPrefix = "INFO: "
18
+ warningPrefix = "WARNING: "
19
+ errorPrefix = "ERROR: "
20
+ debugPrefix = "DEBUG: "
15
21
)
16
22
17
- var InfoLogger = NewErrorLogger (os .Stdout , "INFO: " )
18
- var WarningLogger = NewErrorLogger (os .Stdout , "WARNING: " )
19
- var ErrorLogger = NewErrorLogger (os .Stderr , "ERROR: " )
20
- var DebugLogger = NewErrorLogger (ioutil .Discard , "DEBUG: " )
23
+ var InfoLogger = NewErrorLogger (os .Stdout , infoPrefix )
24
+ var WarningLogger = NewErrorLogger (os .Stdout , warningPrefix )
25
+ var ErrorLogger = NewErrorLogger (os .Stderr , errorPrefix )
26
+ var DebugLogger = NewErrorLogger (ioutil .Discard , debugPrefix )
21
27
22
28
var LogLevels = []string {NormalLogLevel , DevelLogLevel }
23
29
var logLevel = NormalLogLevel
@@ -28,9 +34,9 @@ var logLevelFormatters = map[string]string{
28
34
29
35
func setupLoggers () {
30
36
if logLevel == NormalLogLevel {
31
- DebugLogger = NewErrorLogger (ioutil .Discard , "DEBUG: " )
37
+ DebugLogger = NewErrorLogger (ioutil .Discard , debugPrefix )
32
38
} else {
33
- DebugLogger = NewErrorLogger (os .Stdout , "DEBUG: " )
39
+ DebugLogger = NewErrorLogger (os .Stdout , debugPrefix )
34
40
}
35
41
}
36
42
@@ -65,3 +71,10 @@ func UpdateLogLevel(newLevel string) error {
65
71
setupLoggers ()
66
72
return nil
67
73
}
74
+
75
+ func RedirectLogging (infoWriter , warningWriter , errorWriter , debugWriter io.Writer ) {
76
+ InfoLogger = NewErrorLogger (infoWriter , infoPrefix )
77
+ WarningLogger = NewErrorLogger (warningWriter , warningPrefix )
78
+ ErrorLogger = NewErrorLogger (errorWriter , errorPrefix )
79
+ DebugLogger = NewErrorLogger (debugWriter , debugPrefix )
80
+ }
0 commit comments