/
logger.go
51 lines (45 loc) · 1.77 KB
/
logger.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
package client
import (
"github.com/go-logr/logr"
"github.com/hazelcast/hazelcast-go-client/logger"
hazelcastv1alpha1 "github.com/hazelcast/hazelcast-platform-operator/api/v1alpha1"
"github.com/hazelcast/hazelcast-platform-operator/internal/util"
)
type LogrHzClientLoggerAdapter struct {
logger logr.Logger
weight logger.Weight
enableFunc func() bool
}
func NewLogrHzClientLoggerAdapter(rootLogger logr.Logger, level logger.Level, h *hazelcastv1alpha1.Hazelcast) (*LogrHzClientLoggerAdapter, error) {
w, err := logger.WeightForLogLevel(level)
l := rootLogger.WithName("client").WithName(h.Name).
WithValues("Hazelcast", h.Name, "Cluster", h.Spec.ClusterName)
return &LogrHzClientLoggerAdapter{
logger: l,
weight: w,
enableFunc: nil,
}, err
}
func (l *LogrHzClientLoggerAdapter) Log(weight logger.Weight, formatter func() string) {
if weight <= l.weight && l.Enabled() {
l.Logger(weight).Info(formatter())
}
}
func (l *LogrHzClientLoggerAdapter) Enabled() bool {
return l.enableFunc != nil && l.enableFunc()
}
func (l *LogrHzClientLoggerAdapter) Logger(weight logger.Weight) logr.Logger {
if weight <= logger.WeightFatal {
return l.logger.V(util.PanicLevel).WithValues("Weight", logger.FatalLevel)
} else if weight <= logger.WeightError {
return l.logger.V(util.ErrorLevel).WithValues("Weight", logger.ErrorLevel)
} else if weight <= logger.WeightWarn {
return l.logger.V(util.WarnLevel).WithValues("Weight", logger.WarnLevel)
} else if weight <= logger.WeightInfo {
return l.logger.V(util.InfoLevel).WithValues("Weight", logger.InfoLevel)
} else if weight <= logger.WeightDebug {
return l.logger.V(util.DebugLevel).WithValues("Weight", logger.DebugLevel)
} else {
return l.logger.V(util.DebugLevel).WithValues("Weight", logger.TraceLevel)
}
}