-
Notifications
You must be signed in to change notification settings - Fork 0
/
log.go
70 lines (58 loc) · 1.53 KB
/
log.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package log
import (
"os"
"github.com/jgolang/log/core"
)
var std = core.New(
Formatter{
prodFlag: LstdProdFlags,
devFlag: LstdDevFlags,
},
Output{
wr: os.Stderr,
},
3)
func init() {
// Load environment mode
switch mode := os.Getenv("MODE"); mode {
case "PROD":
ProductionMode()
case "DEV":
fallthrough
default:
DevelopmentMode()
}
}
// RegisterNewFormatter configure your custom outputs development and production format for default loggin
func RegisterNewFormatter(f core.Formatter) {
std.RegisterNewFormatter(f)
}
// RegisterNewOutput Set custom log output destination for default loggin
func RegisterNewOutput(o core.Output) {
std.RegisterNewOutput(o)
}
// ProductionMode set production mode logger for default loggin
func ProductionMode() {
std.ProductionMode()
}
// DevelopmentMode set development mode logger
func DevelopmentMode() {
std.DevelopmentMode()
}
// SetCalldepth configure the number of stack frames
// to ascend, with 0 identifying the caller of Caller for default loggin
func SetCalldepth(calldepth int) {
std.SetCalldepth(calldepth)
}
// OverrideConfig set a new configuration
func OverrideConfig(devFlags, prodFlags int, additionalInfo *string) {
std.RegisterNewFormatter(NewFormaterConfig(devFlags, prodFlags, additionalInfo))
}
// GetMode doc ...
func GetMode() string {
return std.GetMode()
}
// NewFormaterConfig doc ...
func NewFormaterConfig(devFlag, prodFlag int, additionalInfo *string) Formatter {
return Formatter{devFlag: devFlag, prodFlag: prodFlag, additionalInfo: additionalInfo}
}