Skip to main content

Jiushu logger for Starlette/FastAPI routes.

Project description

logo.png

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jiushu_logger_starlette-1.0.2.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

jiushu_logger_starlette-1.0.2-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file jiushu_logger_starlette-1.0.2.tar.gz.

File metadata

File hashes

Hashes for jiushu_logger_starlette-1.0.2.tar.gz
Algorithm Hash digest
SHA256 31f6d6821b5d180ce4153603db3e7362ceb19a07fa4b03cf64722dae287d1c0e
MD5 8fc887728a518f760fd97a910951ceec
BLAKE2b-256 1d17aecd8a192d8dedbdd4d5f8981a0d7936dc6db0125702235ae52e9e9ccd73

See more details on using hashes here.

File details

Details for the file jiushu_logger_starlette-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for jiushu_logger_starlette-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 105f7c97c97907d9446c5cedcd225ae0bbbd13f9df2428f1c050a508afae3664
MD5 0b052b85e2c77d1caf3b1150e4258059
BLAKE2b-256 d32c5e50376382eac04ff6072887f2e2ec013705a9f0d70fe1cb84e980fa858b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page