Source code for pyicat_plus.utils.log_utils
import sys
import logging
from typing import Optional
[docs]
def basic_config(
logger: Optional[logging.Logger] = None,
level: Optional[int] = None,
format: Optional[str] = None,
) -> None:
"""
:param logger: root logger when not provided
:param level: logger log level
:param str format:
"""
if logger is None:
logger = logging.getLogger()
if level is not None:
logger.setLevel(level)
threshold_level = logging.WARNING
class StdOutFilter(logging.Filter):
def filter(self, record):
return record.levelno < threshold_level
class StdErrFilter(logging.Filter):
def filter(self, record):
return record.levelno >= threshold_level
stdout_handler = logging.StreamHandler(sys.stdout)
stdout_handler.addFilter(StdOutFilter())
stdout_handler.setLevel(logging.DEBUG)
logger.addHandler(stdout_handler)
stderr_handler = logging.StreamHandler(sys.stderr)
stderr_handler.addFilter(StdErrFilter())
stderr_handler.setLevel(threshold_level)
logger.addHandler(stderr_handler)
if format:
formatter = logging.Formatter(format)
stdout_handler.setFormatter(formatter)
stderr_handler.setFormatter(formatter)