This commit is contained in:
2026-02-02 13:06:07 +05:30
commit 1b173f992a
41 changed files with 9380 additions and 0 deletions

51
logging_config.py Normal file
View File

@@ -0,0 +1,51 @@
import logging
import logging.handlers
import os
from pathlib import Path
def setup_logging(log_level=logging.INFO, log_dir="logs"):
"""
Configure logging with both console and file handlers.
Args:
log_level: logging level (default: logging.INFO)
log_dir: directory to store log files
"""
# Create logs directory if it doesn't exist
Path(log_dir).mkdir(exist_ok=True)
# Get root logger
logger = logging.getLogger()
logger.setLevel(log_level)
# Clear existing handlers
logger.handlers.clear()
# Create formatter
formatter = logging.Formatter(
fmt='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
# Console handler
console_handler = logging.StreamHandler()
console_handler.setLevel(log_level)
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
# File handler (rotating)
log_file = os.path.join(log_dir, 'app.log')
file_handler = logging.handlers.RotatingFileHandler(
log_file,
maxBytes=10 * 1024 * 1024, # 10MB
backupCount=5
)
file_handler.setLevel(log_level)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
return logger
def get_logger(name):
"""Get a logger instance for a specific module."""
return logging.getLogger(name)