Skip to content

Commit

Permalink
Reduce "logging level change" event level to info
Browse files Browse the repository at this point in the history
But ensure it is getting seen if the new level is equal to or below info
and the current level is not.
That way it gets seen when the level is set to info or below and when it
is set higher again.

Closes #134.
  • Loading branch information
FichteFoll committed Sep 7, 2017
1 parent 421a8e8 commit 24445ee
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions _logging.py
Expand Up @@ -5,7 +5,7 @@

DEFAULT_LOG_LEVEL = logging.WARNING
DEFAULT_LOG_LEVEL_NAME = logging.getLevelName(DEFAULT_LOG_LEVEL)

EVENT_LEVEL = logging.INFO

pl = logging.getLogger(__package__)
handler = logging.StreamHandler()
Expand All @@ -23,13 +23,19 @@ def _settings():

def plugin_loaded():
def on_settings_reload():
cur_log_level_name = logging.getLevelName(pl.getEffectiveLevel())
cur_log_level = pl.getEffectiveLevel()
cur_log_level_name = logging.getLevelName(cur_log_level)
new_log_level_name = _settings().get('log_level', DEFAULT_LOG_LEVEL_NAME).upper()
log_level = getattr(logging, new_log_level_name, DEFAULT_LOG_LEVEL)
new_log_level = getattr(logging, new_log_level_name, DEFAULT_LOG_LEVEL)

if new_log_level_name != cur_log_level_name:
l.warning("Changing log level from %r to %r", cur_log_level_name, new_log_level_name)
pl.setLevel(log_level)
if cur_log_level > EVENT_LEVEL and new_log_level <= EVENT_LEVEL:
# Only set level before emitting log event if it would not be seen otherwise
pl.setLevel(new_log_level)
l.log(EVENT_LEVEL,
"Changing log level from %r to %r",
cur_log_level_name, new_log_level_name)
pl.setLevel(new_log_level) # Just set it again to be sure

_settings().add_on_change(__name__, on_settings_reload)
on_settings_reload() # trigger on inital settings load, too
Expand Down

0 comments on commit 24445ee

Please sign in to comment.