Source code for buildtest.log

"""
Methods related to buildtest logging
"""
import logging
import os

from buildtest.defaults import BUILDTEST_LOGFILE, console
from buildtest.utils.file import create_dir
from rich.logging import RichHandler


[docs]def init_logfile(logfile=BUILDTEST_LOGFILE, debug=None): """Initialize a log file intended for a builder. This requires passing the filename intended for the log (from the builder) and returns the logger. :param logfile: logfile name :type logfile: str """ formatter = logging.Formatter( "%(asctime)s [%(filename)s:%(lineno)s - %(funcName)5s() ] - [%(levelname)s] %(message)s" ) logger = logging.getLogger("buildtest") parent_dir = os.path.dirname(logfile) create_dir(parent_dir) fh = logging.FileHandler(logfile) fh.setFormatter(formatter) logger.addHandler(fh) logger.setLevel(logging.DEBUG) # enable StreamHandler when --debug option is enabled if debug: rich_handler = RichHandler( console=console, rich_tracebacks=True, markup=True, show_time=False, show_level=False, level=logging.NOTSET, ) rich_handler.setFormatter(formatter) logger.addHandler(rich_handler) return logger