Change logging method
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
import sys
|
||||||
import time
|
import time
|
||||||
import uuid
|
import uuid
|
||||||
from logging.handlers import RotatingFileHandler
|
from logging.handlers import RotatingFileHandler
|
||||||
@@ -171,23 +172,33 @@ class _RequestContextFilter(logging.Filter):
|
|||||||
|
|
||||||
|
|
||||||
def _configure_logging(app: Flask) -> None:
|
def _configure_logging(app: Flask) -> None:
|
||||||
|
formatter = logging.Formatter(
|
||||||
|
"%(asctime)s | %(levelname)s | %(request_id)s | %(method)s %(path)s | %(message)s"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Stream Handler (stdout) - Primary for Docker
|
||||||
|
stream_handler = logging.StreamHandler(sys.stdout)
|
||||||
|
stream_handler.setFormatter(formatter)
|
||||||
|
stream_handler.addFilter(_RequestContextFilter())
|
||||||
|
|
||||||
|
logger = app.logger
|
||||||
|
logger.handlers.clear()
|
||||||
|
logger.addHandler(stream_handler)
|
||||||
|
|
||||||
|
# File Handler (optional, if configured)
|
||||||
|
if app.config.get("LOG_TO_FILE"):
|
||||||
log_file = Path(app.config["LOG_FILE"])
|
log_file = Path(app.config["LOG_FILE"])
|
||||||
log_file.parent.mkdir(parents=True, exist_ok=True)
|
log_file.parent.mkdir(parents=True, exist_ok=True)
|
||||||
handler = RotatingFileHandler(
|
file_handler = RotatingFileHandler(
|
||||||
log_file,
|
log_file,
|
||||||
maxBytes=int(app.config.get("LOG_MAX_BYTES", 5 * 1024 * 1024)),
|
maxBytes=int(app.config.get("LOG_MAX_BYTES", 5 * 1024 * 1024)),
|
||||||
backupCount=int(app.config.get("LOG_BACKUP_COUNT", 3)),
|
backupCount=int(app.config.get("LOG_BACKUP_COUNT", 3)),
|
||||||
encoding="utf-8",
|
encoding="utf-8",
|
||||||
)
|
)
|
||||||
formatter = logging.Formatter(
|
file_handler.setFormatter(formatter)
|
||||||
"%(asctime)s | %(levelname)s | %(request_id)s | %(method)s %(path)s | %(message)s"
|
file_handler.addFilter(_RequestContextFilter())
|
||||||
)
|
logger.addHandler(file_handler)
|
||||||
handler.setFormatter(formatter)
|
|
||||||
handler.addFilter(_RequestContextFilter())
|
|
||||||
|
|
||||||
logger = app.logger
|
|
||||||
logger.handlers.clear()
|
|
||||||
logger.addHandler(handler)
|
|
||||||
logger.setLevel(getattr(logging, app.config.get("LOG_LEVEL", "INFO"), logging.INFO))
|
logger.setLevel(getattr(logging, app.config.get("LOG_LEVEL", "INFO"), logging.INFO))
|
||||||
|
|
||||||
@app.before_request
|
@app.before_request
|
||||||
|
|||||||
Reference in New Issue
Block a user