New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

fastapi-cloud-logging

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fastapi-cloud-logging

Cloud Logging For FastAPI

  • 1.1.0
  • PyPI
  • Socket score

Maintainers
1

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.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc