Agno now leaves PostgreSQL connection-pool diagnostics under SQLAlchemy's own sqlalchemy.pool logger, where you can still turn them on. With AGNO_DEBUG=True, the pools used to inherit Agno's logger and flood container output with every checkout, pre-ping and reset.
Outside a terminal, Agno now writes plain, unwrapped log lines, so container and log-aggregator output reads line by line. Terminal and Jupyter output keeps its Rich formatting. Agno logging also keeps working when stdout is missing or your application has configured its own loggers.
Agno's startup messages are shorter. Queue acceptance stays at INFO. Workflow lifecycle, step and outcome summaries move to DEBUG with their run IDs.
INFO Workflow queued: sync-docs run=<run-id>
DEBUG Workflow started: sync-docs run=<run-id>
DEBUG Step started: sync-docs step=1/1 streaming=true
DEBUG Workflow completed: sync-docs run=<run-id> duration=2.31sLearn more about debug mode and custom logging in the documentation.
Frequently asked questions
Agno leaves pool diagnostics under SQLAlchemy's own sqlalchemy.pool logger. Turn that logger on to see checkouts, pre-pings and resets.
Agno switches to plain, unwrapped lines whenever it logs outside a terminal, which keeps container and log-aggregator output readable line by line. Terminal and Jupyter sessions still get Rich formatting.
Workflow lifecycle, step and outcome summaries now log at DEBUG with their run IDs, and queue acceptance remains at INFO. Read more about debug mode.

