Skip to content

WSGI

If the WSGI web framework you're using doesn't have a dedicated integration, you can use the logfire.instrument_wsgi() method to instrument it.

Installation

Install logfire with the wsgi extra:

pip install 'logfire[wsgi]'
uv add 'logfire[wsgi]'

Usage

Below we have a minimal example using the standard library wsgiref. You can run it with python main.py:

main.py
from wsgiref.simple_server import make_server

import logfire

logfire.configure()


def app(env, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return [b'Hello World']


app = logfire.instrument_wsgi(app)

with make_server('', 8000, app) as httpd:
    # Serve until process is killed
    httpd.serve_forever()

The keyword arguments of logfire.instrument_wsgi() are passed to the OpenTelemetryMiddleware class of the OpenTelemetry WSGI Instrumentation package.

Excluding URLs from instrumentation

Capturing request and response headers