SDK for integrating Python applications with Logbee
Project description
Logbee SDK for Python
Official SDK for integrating Python applications with Logbee, an error monitoring and logging platform.
Installation
pip install logbee-sdk
Optional dependencies
To use the SDK with specific frameworks, you can install the corresponding dependencies:
# For Flask
pip install logbee-sdk[flask]
# For FastAPI
pip install logbee-sdk[fastapi]
# For Django
pip install logbee-sdk[django]
# For all frameworks
pip install logbee-sdk[all]
Usage
Flask Integration
from flask import Flask
from logbee import init_logbee_flask
app = Flask(__name__)
# Initialize Logbee with required and optional parameters
init_logbee_flask(
app,
client_id="your-client-id", # Required
client_secret="your-client-secret", # Required
environment="production",
service_name="my-flask-app",
timeout=30,
retry_attempts=3,
retry_delay=1.0,
send_to_api=True,
capture_body=True,
capture_headers=True,
capture_query_params=True,
mask_sensitive_data=True,
sensitive_fields=["password", "token", "credit_card"],
min_status_code_to_capture=400, # Only capture detailed data for errors
capture_all_requests=False, # Only capture errors by default
)
@app.route('/')
def hello():
return "Hello World!"
FastAPI Integration
from fastapi import FastAPI
from logbee import init_logbee_fastapi
app = FastAPI()
# Initialize Logbee with required and optional parameters
init_logbee_fastapi(
app,
client_id="your-client-id", # Required
client_secret="your-client-secret", # Required
environment="production",
service_name="my-fastapi-app",
timeout=30,
retry_attempts=3,
retry_delay=1.0,
send_to_api=True,
capture_body=True,
capture_headers=True,
capture_query_params=True,
mask_sensitive_data=True,
sensitive_fields=["password", "token", "credit_card"],
min_status_code_to_capture=400, # Only capture detailed data for errors
capture_all_requests=False, # Only capture errors by default
)
@app.get('/')
def hello():
return {"message": "Hello World!"}
Django Integration
In your settings.py file:
MIDDLEWARE = [
# ... other middlewares
'logbee.LogbeeDjangoMiddleware',
]
# Logbee configuration
LOGBEE = {
'client_id': 'your-client-id',
'client_secret': 'your-client-secret',
'environment': 'production',
'service_name': 'my-django-app',
'timeout': 30,
}
Manual error reporting
from logbee import send_error_to_logbee
try:
# Code that might raise exceptions
result = 1 / 0
except Exception as e:
# Send error to Logbee
send_error_to_logbee(
error=e,
context={
"service_name": "my-service",
"environment": "production",
"custom": {"operation": "division"}
},
client_id="your-client-id",
client_secret="your-client-secret"
)
# You can re-raise the exception or handle it according to your logic
raise
Using the decorator to catch errors
from logbee import catch_and_log_errors
@catch_and_log_errors(
service_name="my-service",
environment="production",
client_id="your-client-id",
client_secret="your-client-secret"
)
def function_with_possible_errors():
# If an exception occurs here, it will be automatically sent to Logbee
result = 1 / 0
return result
Configuration options
The Logbee SDK supports the following options:
Required parameters:
client_id: Your Logbee client ID (required)client_secret: Your Logbee client secret (required)
Optional parameters:
environment: Runtime environment (e.g. "development", "production")service_name: Name of your service or applicationtimeout: Request timeout in seconds (default: 30)retry_attempts: Number of retry attempts for failed requests (default: 3)retry_delay: Delay between retries in seconds (default: 1.0)send_to_api: Whether to send logs to Logbee API (default: True)capture_body: Whether to capture request bodies (default: True)capture_headers: Whether to capture request headers (default: True)capture_query_params: Whether to capture query parameters (default: True)mask_sensitive_data: Whether to mask sensitive data (default: True)sensitive_fields: List of fields to be masked (default: ["password", "token", "secret", "credit_card", "card_number"])min_status_code_to_capture: Minimum HTTP status code to capture detailed data (default: 0)capture_all_requests: Whether to capture all requests regardless of status code (default: True)
API Reference
Core Functions
send_error_to_logbee(error, context=None, client_id=None, client_secret=None, timeout=30, retry_attempts=3, retry_delay=1.0)
Sends an error to the Logbee API.
Parameters:
error(Exception): The exception to be sentcontext(dict, optional): Additional context informationclient_id(str, optional): Client ID for authenticationclient_secret(str, optional): Client secret for authenticationtimeout(int, optional): Request timeout in seconds (default: 30)retry_attempts(int, optional): Number of retry attempts (default: 3)retry_delay(float, optional): Delay between retries in seconds (default: 1.0)
Returns:
bool: True if successful, False otherwise
send_log_to_api(log_data, client_id=None, client_secret=None, timeout=30, retry_attempts=3, retry_delay=1.0)
Sends log data to the Logbee API.
Parameters:
log_data(LogData): Log data objectclient_id(str, optional): Client ID for authenticationclient_secret(str, optional): Client secret for authenticationtimeout(int, optional): Request timeout in seconds (default: 30)retry_attempts(int, optional): Number of retry attempts (default: 3)retry_delay(float, optional): Delay between retries in seconds (default: 1.0)
Returns:
bool: True if successful, False otherwise
Decorators
@catch_and_log_errors(**kwargs)
Decorator that automatically catches and sends exceptions to Logbee.
Parameters:
service_name(str, optional): Service nameenvironment(str, optional): Environment nameclient_id(str, optional): Client ID for authenticationclient_secret(str, optional): Client secret for authenticationtimeout(int, optional): Request timeout in seconds (default: 30)custom_context(dict, optional): Additional context
Requirements
- Python 3.7+
- requests >= 2.25.0
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file logbee_sdk-0.2.1.tar.gz.
File metadata
- Download URL: logbee_sdk-0.2.1.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fed46132769060c686abf5dc4a623f4166c55d1ce91759b286e8e55f95c881af
|
|
| MD5 |
5d990d8d2fa6aa5d282223faeaa6ec11
|
|
| BLAKE2b-256 |
7fa223424a309e37f28ceae7e887e951e80606104b327f8098104025659c7d64
|
File details
Details for the file logbee_sdk-0.2.1-py3-none-any.whl.
File metadata
- Download URL: logbee_sdk-0.2.1-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b65b1207dc0c0b6d1cefe5e1abc179154c3da95bb00898d44c6dcee9da9c1979
|
|
| MD5 |
e6cb0d32418ff7af8b99c1f99dda010f
|
|
| BLAKE2b-256 |
d021e5c1feec59a88709cff60c1192ca587759f02245f8111879e5e7e70213a9
|