Source code for dawsonia.log

"""Configures logging using the standard-library module
{mod}`logging` and Rich.

"""

import logging
import logging.handlers
import os
import sys


[docs] def init_logger_basic(name, level=logging.INFO): handler = logging.StreamHandler(sys.stdout) logging.basicConfig(handlers=[handler], level=level) os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"
[docs] def init_logger(name, level=logging.INFO, show_time=False, show_path=False): """Returns a logger instance using ``rich`` package if available; else defaults to ``logging`` standard library. Output is also written into the filesystem in to a rotating filename which rolls over every day. It saves as: - dawsonia.log Previous files would be named: - dawsonia.log.1 - dawsonia.log.2 - ... """ logger = logging.getLogger(name) try: from rich.logging import RichHandler handler = RichHandler(show_time=show_time, show_path=show_path) except ImportError: handler = logging.StreamHandler(sys.stdout) file_handler = logging.handlers.TimedRotatingFileHandler("dawsonia.log", when="D") formatter = logging.Formatter( "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ) os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3" # handler.setLevel(level) handler.setFormatter(formatter) file_handler.setFormatter(formatter) logger.addHandler(handler) logger.addHandler(file_handler) logger.setLevel(level)