Skip to content

Flask Integration

Lumberjack provides deep integration with Flask applications through automatic instrumentation, request tracing, and error handling.

Terminal window
# Install with Flask support
uv add 'lumberjack_sdk[flask]'
from flask import Flask
from lumberjack_sdk import Lumberjack, LumberjackFlask
import logging
app = Flask(__name__)
# Initialize Lumberjack first
Lumberjack.init(project_name="my-flask-app")
# Auto-instrument Flask
LumberjackFlask.instrument(app)
@app.route('/')
def hello():
logging.info("Hello endpoint called")
return "Hello, World!"
if __name__ == '__main__':
app.run(debug=True)

When you call LumberjackFlask.instrument(app), Lumberjack automatically adds:

  • Start/end of each request
  • HTTP method, URL, status code
  • Request duration and response size
  • Automatic exception capture
  • Stack traces with local variables
  • Request context for errors

Use the built-in python library:

from flask import request, g
import 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