Spaces:
Paused
Paused
File size: 1,435 Bytes
a5784e9 | 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 | """
FC Debug File Handlers.
Factory functions for creating RotatingFileHandler instances
for each FC debug module.
"""
import logging
import logging.handlers
from pathlib import Path
from typing import Optional
from .formatters import FCDebugFormatter
def create_rotating_file_handler(
log_path: Path,
max_bytes: int = 5 * 1024 * 1024,
backup_count: int = 3,
level: int = logging.DEBUG,
formatter: Optional[logging.Formatter] = None,
) -> logging.handlers.RotatingFileHandler:
"""
Create a rotating file handler for FC debug logs.
Args:
log_path: Path to the log file
max_bytes: Maximum file size before rotation (default 5MB)
backup_count: Number of backup files to keep (default 3)
level: Log level for the handler
formatter: Custom formatter (defaults to FCDebugFormatter)
Returns:
Configured RotatingFileHandler
"""
handler = logging.handlers.RotatingFileHandler(
log_path,
maxBytes=max_bytes,
backupCount=backup_count,
encoding="utf-8",
)
if formatter is None:
formatter = FCDebugFormatter()
handler.setFormatter(formatter)
handler.setLevel(level)
return handler
def ensure_log_directory(log_dir: Path) -> None:
"""
Ensure the log directory exists.
Args:
log_dir: Path to the log directory
"""
log_dir.mkdir(parents=True, exist_ok=True)
|