32 lines
824 B
Go
32 lines
824 B
Go
package log
|
|
|
|
import (
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
)
|
|
|
|
var (
|
|
// Global, default log level control.
|
|
globalLogLevel levelSetter = zap.NewAtomicLevel()
|
|
)
|
|
|
|
type levelSetter interface {
|
|
zapcore.LevelEnabler
|
|
SetLevel(zapcore.Level)
|
|
Level() zapcore.Level
|
|
}
|
|
|
|
// SetLevel sets the log level for loggers created with the default level
|
|
// controller.
|
|
func SetLevel(level int8) {
|
|
SetLevelForControl(globalLogLevel, level)
|
|
}
|
|
|
|
// SetLevelForControl sets the log level for a given control.
|
|
func SetLevelForControl(control levelSetter, level int8) {
|
|
// Zap's levels get more verbose as the number gets smaller, as explained
|
|
// by zapr here: https://github.com/go-logr/zapr#increasing-verbosity
|
|
// For example setting the level to -2 below, means log.V(2) will be enabled.
|
|
control.SetLevel(zapcore.Level(-level))
|
|
}
|