__init__.py 1.22 KiB
# -*- coding:utf-8; eval: (blacken-mode) -*-
import logging
import contextlib
logger = logging.getLogger(__name__)
def _init_logging():
import logging.config
cfg = {
"version": 1,
"formatters": {
"standard": {
"format": "%(asctime)s %(name)s %(levelname)s: %(message)s",
}
},
"handlers": {
"default": {
"class": "logging.StreamHandler",
"formatter": "standard",
"stream": "ext://sys.stdout",
}
},
"loggers": {
"usadelndsoc": {
"handlers": ["default"],
"level": "INFO",
"propagate": True,
},
},
}
logging.config.dictConfig(cfg)
class with_log_level(contextlib.ContextDecorator):
def __init__(self, level):
self._level = level
def _recreate_cm(self):
return with_log_level(self._level)
def __enter__(self):
self._old_level = int(logger.level)
logger.setLevel(self._level)
return self
def __exit__(self, *exc):
logger.setLevel(self._old_level)
return False
_init_logging()
del _init_logging, logging, contextlib