-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtypes.go
More file actions
45 lines (37 loc) · 876 Bytes
/
types.go
File metadata and controls
45 lines (37 loc) · 876 Bytes
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
package elog
const (
LoggerModeTypeInfo uint64 = 1 << iota
LoggerModeTypeWarning
LoggerModeTypeError
LoggerModeTypeFatal
LoggerModeTypeDebug
)
const (
LoggerOptIncludeTime uint64 = 1 << iota
)
var Modes = map[uint64]string{
LoggerModeTypeInfo: "info",
LoggerModeTypeWarning: "warning",
LoggerModeTypeError: "error",
LoggerModeTypeFatal: "fatal",
LoggerModeTypeDebug: "debug",
}
// RegisterMode registers a logger type into the types map.
func RegisterMode(t uint64, v string) bool {
if _, ok := Modes[t]; ok {
return false
}
Modes[t] = v
return true
}
// WithFlags returns a final type flag with all the types that the logger should use.
func WithFlags(types ...uint64) uint64 {
var final_type uint64
for _, t := range types {
final_type = final_type | t
}
return final_type
}
func HasType(types, t uint64) bool {
return types&t > 0
}