Helper for starlette to add request id in logger
Project description
starlette-request-id
starlette-request-id is a helper for starlette to add request id in logger.
Installation
starlette-request-id is available on PyPI. Use pip to install:
$ pip install starlette-request-id
Basic Usage
import httpx
import uvicorn
from starlette.applications import Starlette
from starlette.responses import PlainTextResponse
from starlette_request_id import REQUEST_ID_HEADER, RequestIdMiddleware, init_logger, request_id_ctx
LOGGING = {
"version": 1,
"disable_existing_loggers": 0,
"formatters": {
"default": {
"format": "[%(asctime)s] %(levelname)s [%(request_id)s] %(name)s | %(message)s",
"datefmt": "%d/%b/%Y %H:%M:%S",
}
},
"handlers": {
"stdout": {
"level": "INFO",
"class": "logging.StreamHandler",
"formatter": "default",
},
},
"loggers": {
"": {
"handlers": ["stdout"],
"propagate": True,
"level": "INFO",
},
},
}
def init_app():
init_logger(LOGGING)
app_ = Starlette()
app_.add_middleware(RequestIdMiddleware)
@app_.route("/")
def success(request):
httpx.post("https://www.example.org/", headers={REQUEST_ID_HEADER: request_id_ctx.get()})
return PlainTextResponse("OK", status_code=200)
return app_
app = init_app()
if __name__ == "__main__":
uvicorn.run(
app=app,
log_config=LOGGING,
)
curl 127.0.0.1:8000
[17/Jan/2021 18:31:19] INFO [N/A] uvicorn.error | Started server process [576540]
[17/Jan/2021 18:31:19] INFO [N/A] uvicorn.error | Waiting for application startup.
[17/Jan/2021 18:31:19] INFO [N/A] uvicorn.error | Application startup complete.
[17/Jan/2021 18:31:19] INFO [N/A] uvicorn.error | Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
[17/Jan/2021 18:31:22] INFO [22395fa2-e296-420e-93a1-5537e1ba0a62] uvicorn.access | 127.0.0.1:50372 - "GET / HTTP/1.1" 200
[17/Jan/2021 18:31:25] INFO [9ac6fa25-5048-4222-ac54-dd2c70e3e042] uvicorn.access | 127.0.0.1:50374 - "GET / HTTP/1.1" 200
License
starlette-request-id is developed and distributed under the Apache 2.0 license.
Reporting a Security Vulnerability
See our security policy.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for starlette-request-id-0.3.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0abde47ac1e6dff4b50d3fc0a6c26a439846490e1b1d36b4e7cc52a63dad1957 |
|
MD5 | ee934def1b7fefa9fc6b0529cf3f9b32 |
|
BLAKE2b-256 | 4a00fae0ae8b9bfd1fe0996132c09aeae0715ee35365f792fd5ac8d517877aed |
Close
Hashes for starlette_request_id-0.3.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6eb9f21a41aededef86ecda9c5883c0d93bbb6e8fc850b05e37967bbb7d5b86 |
|
MD5 | 48b07af963feedf1698a12086f750cb7 |
|
BLAKE2b-256 | 2513a163e8b171f569359c664c9cfd36620b067ba28bc8330ba3f8e966858089 |