Source code for pyccapt.calibration.core.logging_library

import logging
import sys


[docs] def logger_creator(script_name, file_handler=None): """ Instantiate and configure a logger object for logging. The function uses the native logging library in Python. Args: script_name (str): The name of the script or module using the logger. file_handler (dict, optional): Specification of the file handler. Defaults to None. Returns: logging.Logger: The logger object that can be used to log statements of different levels: - INFO: Useful information. - WARNING: Something is not right. - DEBUG: A debug message. - ERROR: A major error has occurred. - CRITICAL: A fatal error. Cannot continue. """ log_creator = logging.getLogger(script_name) log_creator.setLevel(logging.INFO) formatter = logging.Formatter('%(asctime)s | %(levelname)s | %(message)s', '%m-%d-%Y %H:%M:%S') stdout_handler = logging.StreamHandler(sys.stdout) stdout_handler.setLevel(logging.DEBUG) stdout_handler.setFormatter(formatter) log_creator.addHandler(stdout_handler) if file_handler is None: return log_creator else: if 'path' not in file_handler or 'log_file_name' not in file_handler: print("Please provide the path and log_file_name in the dictionary") elif not file_handler['log_file_name'].endswith('.log'): print("Please provide the log file name with the .log extension") else: log_creator_file_handler = add_file_handler(log_creator, formatter, file_handler) return log_creator_file_handler
[docs] def add_file_handler(log_creator, formatter, file_handler): """ Add a file handler to the logger. This function allows the respective module to add a file handler to the logger. Args: log_creator (logging.Logger): The logger object to which the file handler is added. formatter (logging.Formatter): The type of logging format. file_handler (dict): The module specification of the file handler. Returns: logging.Logger: The modified logger object with the additional file handler. """ print("add_file_handler called", file_handler) path = file_handler['path'] log_file_name = file_handler['log_file_name'] file_handler_creator = logging.FileHandler(f"{path}/{log_file_name}") file_handler_creator.setLevel(logging.DEBUG) file_handler_creator.setFormatter(formatter) log_creator.addHandler(file_handler_creator) return log_creator