Add log.IsGreaterOrEqualTo, that take into consideration path-scoped log levels
This commit is contained in:
@@ -106,6 +106,7 @@ func levelFromString(l string) Level {
|
||||
return level
|
||||
}
|
||||
|
||||
// SetLogLevels sets the log levels for specific paths in the codebase.
|
||||
func SetLogLevels(levels map[string]string) {
|
||||
for k, v := range levels {
|
||||
logLevels = append(logLevels, levelPath{path: k, level: levelFromString(v)})
|
||||
@@ -154,6 +155,11 @@ func CurrentLevel() Level {
|
||||
return currentLevel
|
||||
}
|
||||
|
||||
// IsGreaterOrEqualTo returns true if the caller's current log level is equal or greater than the provided level.
|
||||
func IsGreaterOrEqualTo(level Level) bool {
|
||||
return shouldLog(level)
|
||||
}
|
||||
|
||||
func Fatal(args ...interface{}) {
|
||||
log(LevelFatal, args...)
|
||||
os.Exit(1)
|
||||
|
||||
@@ -137,6 +137,37 @@ var _ = Describe("Logger", func() {
|
||||
})
|
||||
})
|
||||
|
||||
Describe("IsGreaterOrEqualTo", func() {
|
||||
It("returns false if log level is below provided level", func() {
|
||||
SetLevel(LevelError)
|
||||
Expect(IsGreaterOrEqualTo(LevelWarn)).To(BeFalse())
|
||||
})
|
||||
|
||||
It("returns true if log level is equal to provided level", func() {
|
||||
SetLevel(LevelWarn)
|
||||
Expect(IsGreaterOrEqualTo(LevelWarn)).To(BeTrue())
|
||||
})
|
||||
|
||||
It("returns true if log level is above provided level", func() {
|
||||
SetLevel(LevelTrace)
|
||||
Expect(IsGreaterOrEqualTo(LevelDebug)).To(BeTrue())
|
||||
})
|
||||
|
||||
It("returns true if log level for the current code path is equal provided level", func() {
|
||||
SetLevel(LevelError)
|
||||
SetLogLevels(map[string]string{
|
||||
"log/log_test": "debug",
|
||||
})
|
||||
|
||||
// Need to nest it in a function to get the correct code path
|
||||
var result = func() bool {
|
||||
return IsGreaterOrEqualTo(LevelDebug)
|
||||
}()
|
||||
|
||||
Expect(result).To(BeTrue())
|
||||
})
|
||||
})
|
||||
|
||||
Describe("extractLogger", func() {
|
||||
It("returns an error if the context is nil", func() {
|
||||
_, err := extractLogger(nil)
|
||||
|
||||
Reference in New Issue
Block a user