Spaces:
Sleeping
Sleeping
File size: 1,381 Bytes
63de3ab | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | import logging
import os
from logging.handlers import RotatingFileHandler
from from_root import from_root
from datetime import datetime
LOG_DIR = 'logs'
# LOG_FILE = f"{datetime.now().strftime('%m_%d_%Y_%H_%M_%S')}.log"
LOG_FILE="LOG.log"
MAX_LOG_SIZE = 5 * 1024 * 1024 # 5 MB
BACKUP_COUNT = 3 # Number of backup log files to keep
# construct log file path
log_dir_path=os.path.join(from_root(),LOG_DIR)
os.makedirs(log_dir_path,exist_ok=True)
log_file_path=os.path.join(log_dir_path,LOG_FILE)
def configure_logger():
logger=logging.getLogger()
logger.setLevel(logging.DEBUG)
# Defining formate
formater = logging.Formatter("[ %(asctime)s ] %(name)s - %(levelname)s - %(message)s")
# file handleing with rotation
file_handler=RotatingFileHandler(log_file_path, maxBytes=MAX_LOG_SIZE, backupCount=BACKUP_COUNT)
file_handler.setFormatter(formater)
file_handler.setLevel(logging.DEBUG)
console_handler=logging.StreamHandler()
console_handler.setFormatter(formater)
console_handler.setLevel(logging.INFO)
# Ensure console output uses UTF-8 to prevent character mapping errors on Windows
if hasattr(console_handler.stream, 'reconfigure'):
console_handler.stream.reconfigure(encoding='utf-8')
logger.addHandler(file_handler)
logger.addHandler(console_handler)
# return logger
configure_logger() |