34 lines
914 B
Python
34 lines
914 B
Python
"""Structured logging for LogiFlow AI — loguru setup with standard logging fallback."""
|
|
import sys
|
|
import os
|
|
import logging
|
|
from pathlib import Path
|
|
|
|
try:
|
|
from loguru import logger
|
|
|
|
Path("logs").mkdir(exist_ok=True)
|
|
|
|
logger.remove()
|
|
|
|
logger.add(
|
|
sys.stderr,
|
|
format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}",
|
|
level=os.getenv("LOG_LEVEL", "INFO"),
|
|
colorize=False,
|
|
)
|
|
|
|
logger.add(
|
|
"logs/logiflow_{time:YYYY-MM-DD}.log",
|
|
rotation="100 MB",
|
|
retention="30 days",
|
|
compression="gz",
|
|
level="DEBUG",
|
|
format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}",
|
|
)
|
|
except ImportError:
|
|
logging.basicConfig(level=logging.INFO, format="%(asctime)s | %(levelname)-8s | %(message)s")
|
|
logger = logging.getLogger("logiflow")
|
|
|
|
__all__ = ["logger"]
|