[VOL-2471] Update library to use package logger
This commit consists of the following:
1) Add a GetLogLevel() API to make it easier to use specific
logger. There is also the V() API that kind of do something
similar.
2) Add a common.go file to some heavily used packages in order
to dynamically set their log level and also to a set a specific
logger per package.
3) Use a per package logger for some of the heavily used packages
for improved performance.
Change-Id: If22a2c82d87d808f305677a2e793f8064f33291e
diff --git a/pkg/log/log.go b/pkg/log/log.go
index 026c6c0..43567e3 100644
--- a/pkg/log/log.go
+++ b/pkg/log/log.go
@@ -107,6 +107,9 @@
// V reports whether verbosity level l is at least the requested verbose level.
V(l int) bool
+
+ //Returns the log level of this specific logger
+ GetLogLevel() int
}
// Fields is used as key-value pairs for structured logging
@@ -119,8 +122,9 @@
var cfgs map[string]zp.Config
type logger struct {
- log *zp.SugaredLogger
- parent *zp.Logger
+ log *zp.SugaredLogger
+ parent *zp.Logger
+ packageName string
}
func intToAtomicLevel(l int) zp.AtomicLevel {
@@ -266,8 +270,9 @@
}
loggers[pkgName] = &logger{
- log: l.Sugar(),
- parent: l,
+ log: l.Sugar(),
+ parent: l,
+ packageName: pkgName,
}
return loggers[pkgName], nil
}
@@ -287,8 +292,9 @@
}
loggers[pkgName] = &logger{
- log: l.Sugar(),
- parent: l,
+ log: l.Sugar(),
+ parent: l,
+ packageName: pkgName,
}
}
return nil
@@ -334,8 +340,9 @@
// Set the logger
loggers[pkgName] = &logger{
- log: l.Sugar(),
- parent: l,
+ log: l.Sugar(),
+ parent: l,
+ packageName: pkgName,
}
return loggers[pkgName], nil
}
@@ -638,6 +645,11 @@
return l.parent.Core().Enabled(intToLevel(level))
}
+// GetLogLevel returns the current level of the logger
+func (l logger) GetLogLevel() int {
+ return levelToInt(cfgs[l.packageName].Level.Level())
+}
+
// With returns a logger initialized with the key-value pairs
func With(keysAndValues Fields) Logger {
return logger{log: getPackageLevelSugaredLogger().With(serializeMap(keysAndValues)...), parent: defaultLogger.parent}
@@ -767,3 +779,8 @@
func V(level int) bool {
return getPackageLevelLogger().V(level)
}
+
+//GetLogLevel returns the log level of the invoking package
+func GetLogLevel() int {
+ return getPackageLevelLogger().GetLogLevel()
+}