mirror of
https://github.com/Benexl/FastAnime.git
synced 2025-12-25 12:24:52 -08:00
48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
import logging
|
|
from logging.handlers import RotatingFileHandler
|
|
from pathlib import Path
|
|
|
|
from ...core.constants import LOG_FILE
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def setup_logging(log: bool | None) -> None:
|
|
"""Configures the application's logging based on CLI flags."""
|
|
|
|
_setup_default_logger()
|
|
if log:
|
|
from rich.logging import RichHandler
|
|
|
|
logging.basicConfig(
|
|
level="DEBUG",
|
|
format="%(message)s",
|
|
datefmt="[%X]",
|
|
handlers=[RichHandler()],
|
|
)
|
|
logging.getLogger(__name__).info("Rich logging initialized.")
|
|
else:
|
|
logging.basicConfig(level="CRITICAL")
|
|
|
|
|
|
def _setup_default_logger(
|
|
log_file_path: Path = LOG_FILE,
|
|
max_bytes=10 * 1024 * 1024, # 10mb
|
|
backup_count=5,
|
|
level=logging.DEBUG,
|
|
):
|
|
logger.setLevel(level)
|
|
formatter = logging.Formatter(
|
|
"%(asctime)s - %(name)s - %(levelname)s - %(process)d - %(thread)d - %(filename)s:%(lineno)d - %(message)s"
|
|
)
|
|
|
|
file_handler = RotatingFileHandler(
|
|
log_file_path,
|
|
maxBytes=max_bytes,
|
|
backupCount=backup_count,
|
|
encoding="utf-8",
|
|
)
|
|
file_handler.setLevel(level)
|
|
file_handler.setFormatter(formatter)
|
|
logger.addHandler(file_handler)
|