Uncomplicated Observability for Python and beyond! 🪵🔥
From the team behind Pydantic, Logfire is an observability platform built on the same belief as our
open source library — that the most powerful tools can be easy to use.
What sets Logfire apart:
See the documentation for more information.
Feel free to report issues and ask any questions about Logfire in this repository!
This repo contains the Python SDK for logfire
and documentation; the server application for recording and displaying data is closed source.
This is a very brief overview of how to use Logfire, the documentation has much more detail.
pip install logfire
logfire auth
Here’s a simple manual tracing (aka logging) example:
import logfire
from datetime import date
logfire.configure()
logfire.info('Hello, {name}!', name='world')
with logfire.span('Asking the user their {question}', question='age'):
user_input = input('How old are you [YYYY-mm-dd]? ')
dob = date.fromisoformat(user_input)
logfire.debug('{dob=} {age=!r}', dob=dob, age=date.today() - dob)
Or you can also avoid manual instrumentation and instead integrate with lots of popular packages, here’s an example of integrating with FastAPI:
import logfire
from pydantic import BaseModel
from fastapi import FastAPI
app = FastAPI()
logfire.configure()
logfire.instrument_fastapi(app)
# next, instrument your database connector, http library etc. and add the logging handler
class User(BaseModel):
name: str
country_code: str
@app.post('/')
async def add_user(user: User):
# we would store the user here
return {'message': f'{user.name} added'}
Logfire gives you a view into how your code is running like this:
We’d love anyone interested to contribute to the Logfire SDK and documentation, see the contributing guide.
See our security policy.
The Logfire SDKs (we also have them for TypeScript and Rust) are open source, and you can use them to export data to any OTel-compatible backend.
The Logfire platform (the UI and backend) is closed source. You can self-host it by purchasing an enterprise license.