Jiushu logger for Starlette/FastAPI routes.
Project description
jiushu-logger-starlette【九书 Starlette / FastAPI 路由专用】
简介
JF 专用格式化 logger 的 Starlette / FastAPI 路由特供版,专门输出请求日志。
使用方法
from asyncio import sleep
from starlette.applications import Starlette
from starlette.middleware import Middleware
from starlette.requests import Request
from starlette.responses import PlainTextResponse, JSONResponse
from starlette.routing import Route, Mount
from jiushu_logger_starlette.route_logging_middleware import RouterLoggingMiddleware
async def _test(request: Request):
# You can get trace id of *this* request.
# If apache-skywalking is used, this trace_id will be the ID tracing by skywalking.
return PlainTextResponse(request.state.trace_id.encode('utf_8'))
async def _test2(request: Request):
await sleep(1.23456)
return JSONResponse({'result': True}, headers={'Content-Type': 'application/json'})
async def _should_be_skip(request: Request):
return PlainTextResponse(b'Hello, world!')
async def _health(request: Request):
return JSONResponse({'status': 'UP'}, headers={'Content-Type': 'application/json'})
routes = [
Mount('/api', routes=[
Route('/test', _test),
Route('/test2', _test2, methods=['GET', 'POST']),
Route('/should-be-skip', _should_be_skip),
Route('/health', _health),
])
]
middleware = [
# Logging for routes.
# You can set which route should be skipped,
# or which pattern the route matches should be skipped.
Middleware(RouterLoggingMiddleware,
skip_routes=['/api/health'],
skip_regexes=[r'''^.*skip.*$'''])
]
app = Starlette(routes=routes, middleware=middleware)
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
File details
Details for the file jiushu_logger_starlette-1.0.2.tar.gz
.
File metadata
- Download URL: jiushu_logger_starlette-1.0.2.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31f6d6821b5d180ce4153603db3e7362ceb19a07fa4b03cf64722dae287d1c0e |
|
MD5 | 8fc887728a518f760fd97a910951ceec |
|
BLAKE2b-256 | 1d17aecd8a192d8dedbdd4d5f8981a0d7936dc6db0125702235ae52e9e9ccd73 |
File details
Details for the file jiushu_logger_starlette-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: jiushu_logger_starlette-1.0.2-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 105f7c97c97907d9446c5cedcd225ae0bbbd13f9df2428f1c050a508afae3664 |
|
MD5 | 0b052b85e2c77d1caf3b1150e4258059 |
|
BLAKE2b-256 | d32c5e50376382eac04ff6072887f2e2ec013705a9f0d70fe1cb84e980fa858b |