full refactor fml

This commit is contained in:
Michael Beck
2025-02-07 04:13:17 +01:00
parent ceebbafed5
commit 9076c5ed7a
11 changed files with 561 additions and 461 deletions

39
app/logging_config.py Normal file
View File

@@ -0,0 +1,39 @@
import logging
from logging.handlers import QueueHandler
from queue import Queue
import os
from datetime import datetime
from app.config import load_config
config = load_config()
# Define the log directory and ensure it exists
LOG_DIR = config['LOGGING']['LOG_DIR']
if not os.path.exists(LOG_DIR):
os.makedirs(LOG_DIR)
# Generate the log filename dynamically
log_file_name = os.path.join(LOG_DIR, datetime.now().strftime('%Y-%m-%d-%H-%M') + '.log')
# Initialize the logger
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# File handler
file_handler = logging.FileHandler(log_file_name, mode='w')
file_handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(levelname)s: %(message)s',
datefmt='%m/%d/%Y %I:%M:%S %p')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
# Queue handler for real-time logging
log_queue = Queue()
queue_handler = QueueHandler(log_queue)
queue_handler.setLevel(logging.DEBUG)
logger.addHandler(queue_handler)
# Function to get logger in other modules
def get_logger():
return logger