utils.logging
1import logging 2import os 3from datetime import datetime 4from logging import StreamHandler 5 6from colorlog import ColoredFormatter 7 8 9def configure_logging(): 10 """Configures the logging for the application.""" 11 os.makedirs("logs/dataengine", exist_ok=True) 12 13 timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") 14 log_filename = f"logs/dataengine/{timestamp}_dataengine.log" 15 16 colored_formatter = ColoredFormatter( 17 "%(log_color)s%(asctime)s - %(levelname)s - %(name)s - %(funcName)s - %(message)s", 18 datefmt=None, 19 reset=True, 20 log_colors={ 21 "DEBUG": "cyan", 22 "INFO": "", 23 "WARNING": "yellow", 24 "ERROR": "red", 25 "CRITICAL": "red,bg_white", 26 }, 27 secondary_log_colors={}, 28 style="%", 29 ) 30 31 # Set pymongo logger to only show WARN and above 32 logging.getLogger("pymongo").setLevel(logging.WARNING) 33 34 # Create console handler with INFO level 35 console_handler = StreamHandler() # Changed from ColoredFormatter to StreamHandler 36 console_handler.setFormatter(colored_formatter) 37 console_handler.setLevel(logging.INFO) 38 39 # Create file handler with DEBUG level 40 file_handler = logging.FileHandler(log_filename) 41 file_handler.setLevel(logging.DEBUG) 42 43 # Create formatter and add it to the handlers 44 formatter = logging.Formatter( 45 "%(asctime)s - %(levelname)s - %(name)s - %(funcName)s - %(message)s" 46 ) 47 file_handler.setFormatter(formatter) 48 49 logging.basicConfig( 50 level=logging.DEBUG, # Set root logger to DEBUG to capture all logs 51 format="%(asctime)s - %(levelname)s - %(name)s - %(funcName)s - %(message)s", 52 handlers=[ 53 console_handler, # Log INFO and above to console with colors 54 file_handler, # Log DEBUG and above to file 55 ], 56 force=True, 57 )
def
configure_logging():
10def configure_logging(): 11 """Configures the logging for the application.""" 12 os.makedirs("logs/dataengine", exist_ok=True) 13 14 timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") 15 log_filename = f"logs/dataengine/{timestamp}_dataengine.log" 16 17 colored_formatter = ColoredFormatter( 18 "%(log_color)s%(asctime)s - %(levelname)s - %(name)s - %(funcName)s - %(message)s", 19 datefmt=None, 20 reset=True, 21 log_colors={ 22 "DEBUG": "cyan", 23 "INFO": "", 24 "WARNING": "yellow", 25 "ERROR": "red", 26 "CRITICAL": "red,bg_white", 27 }, 28 secondary_log_colors={}, 29 style="%", 30 ) 31 32 # Set pymongo logger to only show WARN and above 33 logging.getLogger("pymongo").setLevel(logging.WARNING) 34 35 # Create console handler with INFO level 36 console_handler = StreamHandler() # Changed from ColoredFormatter to StreamHandler 37 console_handler.setFormatter(colored_formatter) 38 console_handler.setLevel(logging.INFO) 39 40 # Create file handler with DEBUG level 41 file_handler = logging.FileHandler(log_filename) 42 file_handler.setLevel(logging.DEBUG) 43 44 # Create formatter and add it to the handlers 45 formatter = logging.Formatter( 46 "%(asctime)s - %(levelname)s - %(name)s - %(funcName)s - %(message)s" 47 ) 48 file_handler.setFormatter(formatter) 49 50 logging.basicConfig( 51 level=logging.DEBUG, # Set root logger to DEBUG to capture all logs 52 format="%(asctime)s - %(levelname)s - %(name)s - %(funcName)s - %(message)s", 53 handlers=[ 54 console_handler, # Log INFO and above to console with colors 55 file_handler, # Log DEBUG and above to file 56 ], 57 force=True, 58 )
Configures the logging for the application.