smarttrip_ai / logger /logging.py
swaraj
test_2
0fefb50
Raw
History Blame Contribute Delete
1.38 kB
"""
Application logger for SmartTrip AI.
Creates a daily rotating log file under logs/ and also writes to stdout.
Call get_logger(name) from any module to get a named logger.
"""
import logging
import os
from datetime import datetime
def get_logger(name: str = "smarttrip_ai") -> logging.Logger:
"""
Return a configured Logger instance.
- File handler → logs/app_YYYYMMDD.log (DEBUG and above)
- Stream handler → stdout (INFO and above)
"""
os.makedirs("logs", exist_ok=True)
logger = logging.getLogger(name)
# Avoid adding duplicate handlers when the same name is requested again
if logger.handlers:
return logger
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter(
fmt="%(asctime)s | %(levelname)-8s | %(name)s | %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
# Daily log file
log_file = os.path.join("logs", f"app_{datetime.now().strftime('%Y%m%d')}.log")
file_handler = logging.FileHandler(log_file, encoding="utf-8")
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(formatter)
# Console output
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
stream_handler.setFormatter(formatter)
logger.addHandler(file_handler)
logger.addHandler(stream_handler)
return logger