Skip to content

Commit

Permalink
Add SetLevel() to DefaultLeveledLogger
Browse files Browse the repository at this point in the history
Allows a custom LoggerFactory to update a logger's loglevel
at runtime.
  • Loading branch information
mjmac authored and Sean-Der committed Apr 2, 2019
1 parent 5b0f1c8 commit fdbcd3a
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
5 changes: 5 additions & 0 deletions logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,11 @@ func (ll *DefaultLeveledLogger) logf(logger *log.Logger, level LogLevel, format
}
}

// SetLevel sets the logger's logging level
func (ll *DefaultLeveledLogger) SetLevel(newLevel LogLevel) {
ll.level.Set(newLevel)
}

// Trace emits the preformatted message if the logger is at or below LogLevelTrace
func (ll *DefaultLeveledLogger) Trace(msg string) {
ll.logf(ll.trace, LogLevelTrace, msg)
Expand Down
9 changes: 9 additions & 0 deletions logging_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,12 @@ func TestDefaultLogger(t *testing.T) {
testWarnLevel(t, logger)
testErrorLevel(t, logger)
}

func TestSetLevel(t *testing.T) {
logger := logging.
NewDefaultLeveledLoggerForScope("testSetLevel", logging.LogLevelWarn, os.Stdout)

testNoDebugLevel(t, logger)
logger.SetLevel(logging.LogLevelDebug)
testDebugLevel(t, logger)
}

0 comments on commit fdbcd3a

Please sign in to comment.