Source code for pycmor.core.logging

import warnings
from functools import wraps

from loguru import logger
from rich.logging import RichHandler


[docs] def showwarning(message, *args, **kwargs): """Set up warnings to use logger""" logger.warning(message)
[docs] def report_filter(record): """Checks if the record should be added to the report log or not""" return record["extra"].get("add_to_report", False)
[docs] def add_to_report_log(func): """Decorator for logging to the report log""" @wraps(func) def wrapper(*args, **kwargs): with logger.contextualize(add_to_report=True): return func(*args, **kwargs) return wrapper
[docs] def add_report_logger(): logger.add( "pycmor_report.log", format="{time} {level} {message}", filter=report_filter )
warnings.showwarning = showwarning logger.remove() rich_handler_id = logger.add(RichHandler(), format="{message}", level="INFO")