Source code for darclight.utils

"""Module to provide utility tools for the reduction and analysis process."""
import logging
import os
from datetime import datetime

logger = logging.getLogger(__name__)

_logging_enabled = False

[docs] def enable_logging(file:bool=True, console:bool=False, filename:str='log'): """later""" global _logging_enabled if _logging_enabled: logger.info("Logging is already enabled.") return None local_logger = logging.getLogger('darclight') local_logger.setLevel(logging.DEBUG) if local_logger.hasHandlers(): local_logger.info("Logging is already enabled.") return None if file: log_dir = './logs' os.makedirs(log_dir, exist_ok=True) timestamp = datetime.now().strftime("%Y%m%d-%H%M%S") logfile = os.path.join(log_dir, f"{filename}_{timestamp}.log") file_handler = logging.FileHandler(logfile) file_handler.setLevel(logging.DEBUG) file_handler.setFormatter(logging.Formatter( "%(asctime)s - %(name)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S")) local_logger.addHandler(file_handler) if console: console_handler = logging.StreamHandler() console_handler.setLevel(logging.INFO) console_handler.setFormatter(logging.Formatter("%(levelname)s - %(message)s")) local_logger.addHandler(console_handler) logger.info("Logging has been enabled.") _logging_enabled = True