-
Notifications
You must be signed in to change notification settings - Fork 0
/
xlog.go
143 lines (115 loc) · 2.41 KB
/
xlog.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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package xlog
import (
"github.com/go-xe2/x/core/cmdenv"
"github.com/go-xe2/x/os/xrunPool"
"io"
)
const (
LEVEL_ALL = LEVEL_DEBU | LEVEL_INFO | LEVEL_NOTI | LEVEL_WARN | LEVEL_ERRO | LEVEL_CRIT
LEVEL_DEV = LEVEL_ALL
LEVEL_PROD = LEVEL_WARN | LEVEL_ERRO | LEVEL_CRIT
LEVEL_DEBU = 1 << iota
LEVEL_INFO
LEVEL_WARN
LEVEL_ERRO
LEVEL_NOTI
LEVEL_CRIT
)
var (
logger = New()
asyncPool = xrunPool.New(1)
)
func init() {
SetDebug(cmdenv.Get("x.xlog.debug", true).Bool())
}
func Logger() *TLogger {
return logger
}
func Clone() *TLogger {
return logger.Clone()
}
// 设置日志路径
func SetPath(path string) error {
return logger.SetPath(path)
}
// 获取日志路径
func GetPath() string {
return logger.GetPath()
}
// 设置日志文件过滤串
// 默认过滤为:Y-m-d.log, eg: 2018-01-01.log
func SetFile(pattern string) {
logger.SetFile(pattern)
}
// SetLevel sets the default logging level.
// 设置日志级别
func SetLevel(level int) {
logger.SetLevel(level)
}
// 获取日志级别
func GetLevel() int {
return logger.GetLevel()
}
// 设置日志输出接口
func SetWriter(writer io.Writer) {
logger.SetWriter(writer)
}
// 获取日志输出接口
func GetWriter() io.Writer {
return logger.GetWriter()
}
// 测试日志为高工模式
func SetDebug(debug bool) {
logger.SetDebug(debug)
}
func GetDebug() bool {
return logger.GetDebug()
}
// 设置是否启用异步输出日志
func SetAsync(enabled bool) {
logger.SetAsync(enabled)
}
func GetAsync() bool {
return logger.GetAsync()
}
// 设置是否为stdout输出,默认为true
func SetStdoutPrint(enabled bool) {
logger.SetStdoutPrint(enabled)
}
// 设置是否打印日志头信息,默认为gtrue
func SetHeaderPrint(enabled bool) {
logger.SetHeaderPrint(enabled)
}
// 设置日志头前缀
func SetPrefix(prefix string) {
logger.SetPrefix(prefix)
}
func GetPrefix() string {
return logger.GetPrefix()
}
// 设置日志扩展设置
func SetFlags(flags int) {
logger.SetFlags(flags)
}
// 获取日志扩展设置
func GetFlags() int {
return logger.GetFlags()
}
// 打印日志栈
func PrintStack(skip ...int) {
logger.PrintStack(skip...)
}
// 获取日志栈
func GetStack(skip ...int) string {
return logger.GetStack(skip...)
}
// 是否打印日志栈信息
func SetStack(enabled bool) {
logger.SetStack(enabled)
}
func GetStackStatus() bool {
return logger.GetStackStatus()
}
func GetStackSkip() int {
return logger.GetStackSkip()
}