resume_parser / src /logging_config.py
Imarticuslearning's picture
Upload 6 files
227f173 verified
# src/logging_config.py
import logging
from logging.handlers import TimedRotatingFileHandler
import os
from datetime import datetime
def setup_logging():
# Create the logs directory if it doesn't exist
log_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'logs')
if not os.path.exists(log_dir):
os.makedirs(log_dir)
# Set the logging level to DEBUG
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
# Create a console handler to output logs to the console
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
# Create a timed rotating file handler to output logs to a file
today_date = datetime.now().strftime('%Y-%m-%d')
log_file = os.path.join(log_dir, f'{today_date}.log')
file_handler = TimedRotatingFileHandler(log_file, when='midnight', interval=1)
file_handler.setLevel(logging.DEBUG)
file_handler.suffix = '%Y-%m-%d' # Date format for log file names
# Create a formatter and set it for both handlers
formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)
# Add both handlers to the logger
logger.addHandler(console_handler)
logger.addHandler(file_handler)
# Avoid duplicate logs by removing the default handler if present
if logger.hasHandlers():
logger.handlers.clear()
logger.addHandler(console_handler)
logger.addHandler(file_handler)