44 lines
1.1 KiB
Python
Executable File
44 lines
1.1 KiB
Python
Executable File
"""
|
|
Logger Configuration
|
|
Centralized logging setup for MOXIE.
|
|
"""
|
|
import sys
|
|
from pathlib import Path
|
|
from loguru import logger
|
|
|
|
|
|
def setup_logger(log_file: str = None, debug: bool = False):
|
|
"""
|
|
Configure the logger for MOXIE.
|
|
|
|
Args:
|
|
log_file: Optional path to log file
|
|
debug: Enable debug level logging
|
|
"""
|
|
# Remove default handler
|
|
logger.remove()
|
|
|
|
# Console handler
|
|
logger.add(
|
|
sys.stderr,
|
|
format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>",
|
|
level="DEBUG" if debug else "INFO",
|
|
colorize=True
|
|
)
|
|
|
|
# File handler (if specified)
|
|
if log_file:
|
|
log_path = Path(log_file)
|
|
log_path.parent.mkdir(parents=True, exist_ok=True)
|
|
|
|
logger.add(
|
|
str(log_path),
|
|
format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}",
|
|
level="DEBUG",
|
|
rotation="10 MB",
|
|
retention="7 days",
|
|
compression="gz"
|
|
)
|
|
|
|
return logger
|