Skip to main content

Cloud Logging For FastAPI

Project description

fastapi-cloud-logging

Test

Project description

fastapi-cloud-logging improves cloud logging with fastapi. It enables to send request data on cloud logging.

Dependencies

  • fastapi
  • cloud logging
  • Python >= 3.7

Installation

pip install fastapi-cloud-logging

Usage

Add a middleware and set a handler to send a request info with each logging.

from fastapi import FastAPI
from google.cloud.logging import Client
from google.cloud.logging_v2.handlers import setup_logging

from fastapi_cloud_logging import FastAPILoggingHandler, RequestLoggingMiddleware

app = FastAPI()

# Add middleware
app.add_middleware(RequestLoggingMiddleware)

# Use manual handler
handler = FastAPILoggingHandler(Client())
setup_logging(handler)

Optional

Structured Message

Cloud logging supports log entries with structured and unstructured data. When a log record has a structured data, it write a log entry with structured data. And when a log record contains a string message, it write a log entry as an unstructured textPayload attribute.

When this structured option set True on FastAPILoggingHandler, it always write a log entry with a message attribute on a structured jsonPayload object.

# default structured value is False
handler = FastAPILoggingHandler(Client(), structured=True)

Error trace

On logging with an error, message payloads includes traceback from an error. If you do not want to include traceback, you should set traceback_length to 0.

# default traceback_length is 100
handler = FastAPILoggingHandler(Client(), traceback_length=0)

Changelog

CHANGELOG.md

Appendix

With multithreading

This middleware depends mainly contextvars. So, when you use multithreading, it cannot handle a request info. On this case, you write a code for manual context management. For example, use copy_context on a thread.

For more information, please read a great article about contextvars.

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

fastapi_cloud_logging-1.1.0.tar.gz (5.8 kB view hashes)

Uploaded Source

Built Distribution

fastapi_cloud_logging-1.1.0-py3-none-any.whl (7.2 kB view hashes)

Uploaded Python 3

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