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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file fastapi_cloud_logging-1.1.0.tar.gz.

File metadata

  • Download URL: fastapi_cloud_logging-1.1.0.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.7.15 Linux/5.15.0-1024-azure

File hashes

Hashes for fastapi_cloud_logging-1.1.0.tar.gz
Algorithm Hash digest
SHA256 4fda7b5b223076450698f5234c1951a17f4a6fb5ceb79638bab2f7548a4ae6d9
MD5 c352140933ec13817fe515f12de9e17a
BLAKE2b-256 a537cbc34c40fef4923e147e424a2e7fc52629682566d569f4652ed776edc999

See more details on using hashes here.

File details

Details for the file fastapi_cloud_logging-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_cloud_logging-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4df5b5350921657d6d2b117897eaa19234dd268e73f7007d2213d08846791a6b
MD5 90fc6195a88218a9a1ca341c6f9c6292
BLAKE2b-256 6fa1dcd73407ad0f71da64dbb9a8387828666b1e44f037afc1365c815de2c025

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