Spaces:
Sleeping
Sleeping
File size: 2,137 Bytes
0b2c9fd | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | # 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)
|