Flask Integration
Lumberjack provides deep integration with Flask applications through automatic instrumentation, request tracing, and error handling.
Installation
Section titled “Installation”# Install with Flask supportuv add 'lumberjack_sdk[flask]'
Basic Setup
Section titled “Basic Setup”from flask import Flaskfrom lumberjack_sdk import Lumberjack, LumberjackFlaskimport logging
app = Flask(__name__)
# Initialize Lumberjack firstLumberjack.init(project_name="my-flask-app")
# Auto-instrument FlaskLumberjackFlask.instrument(app)
@app.route('/')def hello(): logging.info("Hello endpoint called") return "Hello, World!"
if __name__ == '__main__': app.run(debug=True)
What Gets Instrumented
Section titled “What Gets Instrumented”When you call LumberjackFlask.instrument(app)
, Lumberjack automatically adds:
Request Tracing
Section titled “Request Tracing”- Start/end of each request
- HTTP method, URL, status code
- Request duration and response size
Error Handling
Section titled “Error Handling”- Automatic exception capture
- Stack traces with local variables
- Request context for errors
Manual Logging
Section titled “Manual Logging”Use the built-in python library:
from flask import request, gimport logging
@app.route('/users/<int:user_id>')def get_user(user_id): logging.info(f"Getting user {user_id} from {request.remote_addr}")
try: user = User.query.get(user_id) if not user: logging.warning(f"User {user_id} not found") return "User not found", 404
logging.info(f"User retrieved: {user.username}") return user.to_dict()
except Exception as e: logging.error(f"Failed to get user {user_id}: {e}", exc_info=True) return "Internal server error", 500
Next Steps
Section titled “Next Steps”- FastAPI Integration - FastAPI-specific guide
- Configuration Reference - All configuration options
- OpenTelemetry Integration - Production observability