Spaces:
Runtime error
Runtime error
File size: 2,576 Bytes
08d0f6d | 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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | import logging.handlers
import os
import sys
import logging
from loguru import logger
from selenium.webdriver.remote.remote_connection import LOGGER as selenium_logger
from config import LOG_LEVEL, LOG_SELENIUM_LEVEL, LOG_TO_CONSOLE, LOG_TO_FILE
def remove_default_loggers():
"""Remove default loggers from root logger."""
root_logger = logging.getLogger()
if root_logger.hasHandlers():
root_logger.handlers.clear()
if os.path.exists("log/app.log"):
os.remove("log/app.log")
def init_loguru_logger():
"""Initialize and configure loguru logger."""
def get_log_filename():
return f"log/app.log"
log_file = get_log_filename()
os.makedirs(os.path.dirname(log_file), exist_ok=True)
logger.remove()
# Add file logger if LOG_TO_FILE is True
if LOG_TO_FILE:
logger.add(
log_file,
level=LOG_LEVEL,
rotation="10 MB",
retention="1 week",
compression="zip",
format="<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>",
backtrace=True,
diagnose=True,
)
# Add console logger if LOG_TO_CONSOLE is True
if LOG_TO_CONSOLE:
logger.add(
sys.stderr,
level=LOG_LEVEL,
format="<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>",
backtrace=True,
diagnose=True,
)
def init_selenium_logger():
"""Initialize and configure selenium logger to write to selenium.log."""
log_file = "log/selenium.log"
os.makedirs(os.path.dirname(log_file), exist_ok=True)
selenium_logger.handlers.clear()
selenium_logger.setLevel(LOG_SELENIUM_LEVEL)
# Create file handler for selenium logger
file_handler = logging.handlers.TimedRotatingFileHandler(
log_file, when="D", interval=1, backupCount=5
)
file_handler.setLevel(LOG_SELENIUM_LEVEL)
# Define a simplified format for selenium logger entries
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
file_handler.setFormatter(formatter)
# Add the file handler to selenium_logger
selenium_logger.addHandler(file_handler)
remove_default_loggers()
init_loguru_logger()
init_selenium_logger()
|