/log-request-id

extension to handle request-ID logs in popular python api frameworks

Primary LanguagePythonMIT LicenseMIT

log-request-id

Log-Request-ID is an extension to handle request-IDs logs in popular python api frameworks.

Currently supported frameworks: flask

Requirements

  • python (3.6+)

Instalation

Install using pip

pip install log-request-id

Usage

  1. Set LOG_REQUEST_ID_FRAMEWORK_SUPPORT to point to your framework of choice (section currently supported).
LOG_REQUEST_ID_FRAMEWORK_SUPPORT=flask
  1. Init request-ID handler
  • Flask, with log_request_id.flask.init_flask_request_id_handler
from log_request_id import init_flask_request_id_handler

def create_flask_app():
    app = Flask()
    init_flask_request_id_handler(app)
  1. Change log format (optional)

At this stage request_id is already present in log data, request-ID will be under request_id key.

logging.basicConfig(level=logging.WARNING, format='%(filename)s:%(levelname)s:%(request_id)s - %(message)s')
# or
logging.getlogger().setformatter(logging.formatter("%(asctime)s:%(name)s:level=%(levelname)s:%(request_id)s - %(message)s"))

For more advanced logger configuration see python's logging module.

Warning if you will be adding custom handler or custom logging initialization use log_request_id.logging.RequestIdLogRecordFactory or log_request_id.logging.RequestIdLogFilter.