-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathglobal.go
69 lines (56 loc) · 1.48 KB
/
global.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
/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package flogging
import (
"strings"
"go.uber.org/zap/zapcore"
"google.golang.org/grpc/grpclog"
)
const (
defaultFormat = "%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s} %{id:03x}%{color:reset} %{message}"
defaultLevel = zapcore.InfoLevel
)
var Global *Logging
var logger *FabricLogger
func init() {
logging, err := New(Config{})
if err != nil {
panic(err)
}
Global = logging
logger = Global.Logger("flogging")
grpcLogger := Global.ZapLogger("grpc")
grpclog.SetLogger(NewGRPCLogger(grpcLogger))
}
// Init initializes logging with the provided config.
func Init(config Config) {
err := Global.Apply(config)
if err != nil {
panic(err)
}
}
// Reset sets logging to the defaults defined in this package.
//
// Used in tests and in the package init
func Reset() {
Global.Apply(Config{})
}
// GetLoggerLevel gets the current logging level for the logger with the
// provided name.
func GetLoggerLevel(loggerName string) string {
return strings.ToUpper(Global.Level(loggerName).String())
}
// MustGetLogger creates a logger with the specified name. If an invalid name
// is provided, the operation will panic.
func MustGetLogger(loggerName string) *FabricLogger {
return Global.Logger(loggerName)
}
// ActivateSpec is used to activate a logging specification.
func ActivateSpec(spec string) {
err := Global.ActivateSpec(spec)
if err != nil {
panic(err)
}
}