GenAI-FASTAPI / logger_config.py
subashpoudel's picture
next commit
0b2c9fd
# # logger_config.py
# import logging
# import os
# class RelativePathFormatter(logging.Formatter):
# def format(self, record):
# record.relpath = os.path.relpath(record.pathname, os.getcwd())
# return super().format(record)
# def setup_loggers():
# os.makedirs("logs", exist_ok=True)
# # === Format ===
# # formatter = logging.Formatter("%(asctime)s | %(levelname)s | %(name)s | %(message)s")
# formatter = RelativePathFormatter("%(asctime)s | %(levelname)s | %(name)s | %(relpath)s:%(lineno)d | %(message)s")
# # === App Logger ===
# app_logger = logging.getLogger("app_logger")
# app_handler = logging.FileHandler("logs/app.log")
# app_handler.setLevel(logging.INFO)
# app_handler.setFormatter(formatter)
# app_logger.setLevel(logging.INFO)
# app_logger.addHandler(app_handler)
# # === Error Logger ===
# error_logger = logging.getLogger("error_logger")
# error_handler = logging.FileHandler("logs/errors.log")
# error_handler.setLevel(logging.ERROR)
# error_handler.setFormatter(formatter)
# error_logger.setLevel(logging.ERROR)
# error_logger.addHandler(error_handler)
# # === Access Logger === (optional for request logs)
# access_logger = logging.getLogger("access_logger")
# access_handler = logging.FileHandler("logs/access.log")
# access_handler.setLevel(logging.INFO)
# access_handler.setFormatter(formatter)
# access_logger.setLevel(logging.INFO)
# access_logger.addHandler(access_handler)
# # === Warning Logger ===
# warning_logger = logging.getLogger("warning_logger")
# warning_handler = logging.FileHandler("logs/warnings.log")
# warning_handler.setLevel(logging.WARNING) # WARNING, ERROR, CRITICAL
# warning_handler.setFormatter(formatter)
# warning_logger.setLevel(logging.WARNING)
# warning_logger.addHandler(warning_handler)
# # Optional: also log to console
# console_handler = logging.StreamHandler()
# console_handler.setFormatter(formatter)
# app_logger.addHandler(console_handler)
# error_logger.addHandler(console_handler)
# access_logger.addHandler(console_handler)
# warning_logger.addHandler(console_handler)