Cloud Logging For FastAPI
Project description
fastapi-cloud-logging
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
- Require contextvars
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
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4fda7b5b223076450698f5234c1951a17f4a6fb5ceb79638bab2f7548a4ae6d9 |
|
MD5 | c352140933ec13817fe515f12de9e17a |
|
BLAKE2b-256 | a537cbc34c40fef4923e147e424a2e7fc52629682566d569f4652ed776edc999 |
File details
Details for the file fastapi_cloud_logging-1.1.0-py3-none-any.whl
.
File metadata
- Download URL: fastapi_cloud_logging-1.1.0-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.1 CPython/3.7.15 Linux/5.15.0-1024-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4df5b5350921657d6d2b117897eaa19234dd268e73f7007d2213d08846791a6b |
|
MD5 | 90fc6195a88218a9a1ca341c6f9c6292 |
|
BLAKE2b-256 | 6fa1dcd73407ad0f71da64dbb9a8387828666b1e44f037afc1365c815de2c025 |