Skip to main content

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.

Metadata

Release files for fastapi-cloud-logging 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastapi-cloud-logging 1.1.0
File Size Uploaded
fastapi_cloud_logging-1.1.0.tar.gz 5.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastapi-cloud-logging 1.1.0
File Interpreter ABI Platform
fastapi_cloud_logging-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 13.1 kB

Release files / fastapi_cloud_logging-1.1.0.tar.gz

Download URL fastapi_cloud_logging-1.1.0.tar.gz
Size 5.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4fda7b5b223076450698f5234c1951a17f4a6fb5ceb79638bab2f7548a4ae6d9
BLAKE2b-256 checksum
How to use checksums
a537cbc34c40fef4923e147e424a2e7fc52629682566d569f4652ed776edc999
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.1 CPython/3.7.15 Linux/5.15.0-1024-azure

Release files / fastapi_cloud_logging-1.1.0-py3-none-any.whl

Download URL fastapi_cloud_logging-1.1.0-py3-none-any.whl
Size 7.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4df5b5350921657d6d2b117897eaa19234dd268e73f7007d2213d08846791a6b
BLAKE2b-256 checksum
How to use checksums
6fa1dcd73407ad0f71da64dbb9a8387828666b1e44f037afc1365c815de2c025
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.1 CPython/3.7.15 Linux/5.15.0-1024-azure

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.0

2 release files

0.9.1

2 release files

0.8.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page