Skip to content

Commit

Permalink
fix levels Enable() tests
Browse files Browse the repository at this point in the history
  • Loading branch information
hedzr committed Oct 19, 2024
1 parent e51f96b commit 4f80b90
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 11 deletions.
25 changes: 19 additions & 6 deletions slog/level.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ type Level int // logging level
//
// func A() {
// defer slog.SaveLevelAndSet(slog.PanicLevel)()
// l := slog.New().WithLevel(slog.WarnLevel)
// l := slog.New().SetLevel(slog.WarnLevel)
// ...
// }
//
Expand All @@ -38,11 +38,14 @@ func GetLevel() Level { return lvlCurrent }
// SetLevel sets the default logger level
func SetLevel(lvl Level) {
lvlCurrent = lvl
if l, ok := defaultLog.(interface{ SetLevel(lvl Level) }); ok {
l.SetLevel(lvl)
} else if l, ok := defaultLog.(interface{ WithLevel(lvl Level) *Entry }); ok {
l.WithLevel(lvl)
}
defaultLog.SetLevel(lvl)
// if l, ok := defaultLog.(interface{ SetLevel(lvl Level) *Entry }); ok {
// l.SetLevel(lvl)
// } else if l, ok := defaultLog.(interface{ SetLevel(lvl Level) }); ok {
// l.SetLevel(lvl)
// } else if l, ok := defaultLog.(interface{ WithLevel(lvl Level) *Entry }); ok {
// l.WithLevel(lvl)
// }
}

// ResetLevel restore the default logger level to factory value (WarnLevel).
Expand Down Expand Up @@ -168,6 +171,16 @@ func RegWithPrintToErrorDevice(b ...bool) RegOpt {

//

// Enabled tests the requesting level is denied or allowed.
//
// 1. hold OffLevel: any request levels are denied
// 2. hold AlwaysLevel: any request levels are allowed
// 3. in testing/debugging mode, requesting DebugLevel are always allowed.
// 4. an internal table built by the RegWithTreatedAsLevel RegOpt
// in RegisterLevel() will be checked and mapped on the requesting level.
//
// Note that the levels are ordinal: PanicLevel (0) .. DebugLevel (5)
// .. OffLevel (7), AlwaysLevel (8), OKLevel (9) .. MaxLevel (dyn).
func (level Level) Enabled(ctx context.Context, testingLevel Level) bool {
if level == OffLevel || testingLevel == OffLevel {
return false
Expand Down
12 changes: 7 additions & 5 deletions slog/level_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,13 @@ func TestSlogLevelEnabled(t *testing.T) {
testingLevel Level
enabled bool
}{
{PanicLevel, DebugLevel, true},

{PanicLevel, PanicLevel, true},
{PanicLevel, FatalLevel, false},
{PanicLevel, ErrorLevel, false},
{PanicLevel, InfoLevel, false},
{PanicLevel, DebugLevel, false},
{PanicLevel, DebugLevel, true},
{PanicLevel, OKLevel, false},
{PanicLevel, SuccessLevel, false},
{PanicLevel, FailLevel, false},
Expand All @@ -28,7 +30,7 @@ func TestSlogLevelEnabled(t *testing.T) {
{FatalLevel, FatalLevel, true},
{FatalLevel, ErrorLevel, false},
{FatalLevel, InfoLevel, false},
{FatalLevel, DebugLevel, false},
{FatalLevel, DebugLevel, true},
{FatalLevel, OKLevel, false},
{FatalLevel, SuccessLevel, false},
{FatalLevel, FailLevel, false},
Expand All @@ -37,7 +39,7 @@ func TestSlogLevelEnabled(t *testing.T) {
{ErrorLevel, FatalLevel, true},
{ErrorLevel, ErrorLevel, true},
{ErrorLevel, InfoLevel, false},
{ErrorLevel, DebugLevel, false},
{ErrorLevel, DebugLevel, true},
{ErrorLevel, OKLevel, false},
{ErrorLevel, SuccessLevel, false},
{ErrorLevel, FailLevel, true},
Expand All @@ -47,7 +49,7 @@ func TestSlogLevelEnabled(t *testing.T) {
{WarnLevel, ErrorLevel, true},
{WarnLevel, WarnLevel, true},
{WarnLevel, InfoLevel, false},
{WarnLevel, DebugLevel, false},
{WarnLevel, DebugLevel, true},
{WarnLevel, OKLevel, false},
{WarnLevel, SuccessLevel, false},
{WarnLevel, FailLevel, true},
Expand All @@ -57,7 +59,7 @@ func TestSlogLevelEnabled(t *testing.T) {
{InfoLevel, ErrorLevel, true},
{InfoLevel, WarnLevel, true},
{InfoLevel, InfoLevel, true},
{InfoLevel, DebugLevel, false},
{InfoLevel, DebugLevel, true},
{InfoLevel, OKLevel, true},
{InfoLevel, SuccessLevel, true},
{InfoLevel, FailLevel, true},
Expand Down

0 comments on commit 4f80b90

Please sign in to comment.