Spaces:
Sleeping
Sleeping
| # 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) | |