proglog
Log and progress bar manager for console, notebooks, web...
What it is and what it does
Proglog is a progress logging system that solves the problem of managing progress bars and logs across complex multi-library projects. Instead of each library implementing its own progress display, Proglog provides a unified logger interface that abstracts away whether output goes to a console, Jupyter notebook, web server, or custom handler. Libraries pass the logger through their call chain, and end users control which progress bars display, their update frequency, and output format—all without libraries needing to know about the final display target.
The package wraps tqdm and provides logger classes like TqdmProgressBarLogger and RqWorkerBarLogger for different environments. It also supports custom loggers via subclassing ProgressBarLogger, callback functions on state changes, and arbitrary key-value logging beyond just progress bars. This makes it useful when building tools that orchestrate other libraries' long-running operations and need to expose unified, user-configurable progress reporting.
Use it for:
- Building a library that runs nested loops or calls other libraries and wants to expose progress bars that users can silence or customize per-bar
- Creating a web application that runs background jobs via Python-RQ and needs to report progress back to the frontend
- Writing a tool that must work in console, Jupyter, and headless environments without changing code for each context
- Aggregating logs and progress from multiple interdependent libraries into a single, user-controlled reporting stream
- Adding callback hooks to react to progress updates (e.g., logging, metrics collection) without modifying core library code
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Proglog provides a unified progress logging interface that lets library authors expose progress bars and logs to users while letting those users control display format (console, notebook, web) and which bars to show or silence.
Yes, if you are building a library or tool that needs to expose progress or logging to users across multiple environments (console, notebook, web). The permissive MIT license and low install friction (tqdm only) make it a safe choice. The aging maintenance status is a minor concern, but the recent commit and active repository suggest it is still functional; verify test coverage and whether your use case aligns with the documented logger types before committing to it for mission-critical infrastructure.
Install
proglog on PyPI
pip
pip install progloguv
uv add proglogpoetry
poetry add proglogInstalling proglog
Before you install
Low install friction; depends only on tqdm. Package is aging (462 days since last release) but repository is active and not archived, with a recent commit on 2025-05-09.
License in practice
MIT license is permissive; you can use this in commercial and proprietary projects with minimal restrictions beyond attribution.
Quickstart
pip install proglog
from proglog import default_bar_logger
logger = default_bar_logger('bar')
for i in logger.iter_bar(iteration=range(10)):
pass # your work here
For Jupyter notebook HTML progress bars, ipywidgets must be installed separately and enabled in your Jupyter environment.
Verify before relying
- Whether ipywidgets is required for notebook support or only optional for enhanced rendering
- Current test coverage and whether the package is actively maintained beyond the recent commit
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — tqdm |
| Maintenance | aging — 462 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 7,084,385/month — #1,789 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: proglog-0.1.12-py3-none-any.whl
Keywords: logger, log, progress, bar
Tags
More Monitoring packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
opentelemetry-semantic-conventionsProvides generated Python code for…
permissive · top 100 on PyPI
opentelemetry-sdkProvides the reference implementation of the…
permissive · top 100 on PyPI
opentelemetry-apiProvides the abstract API and interfaces for…
permissive · top 100 on PyPI
opentelemetry-exporter-otlp-proto-httpExports OpenTelemetry observability data to an…
permissive · top 1,000 on PyPI
opentelemetry-instrumentationProvides automatic instrumentation commands and…
permissive · top 1,000 on PyPI
progressbar2progressbar2 renders text-based progress bars…
permissive · top 5,000 on PyPI
tqdm-loggableConverts tqdm progress bars to logging-friendly…
permissive · top 5,000 on PyPI
progressProvides terminal progress bars and spinners…
permissive · top 5,000 on PyPI
enlightenEnlighten is a console progress bar library…
copyleft · top 5,000 on PyPI
fastprogressDisplays nested progress bars with optional…
permissive · top 5,000 on PyPI
progressbar33Displays text-based progress bars in the…
unclear · top 15,000 on PyPI
tqdm-multiprocessDisplays multiple tqdm progress bars from…
permissive · top 15,000 on PyPI
celery-progressProvides drop-in progress bars for Django views…
permissive · top 15,000 on PyPI
tqdm-joblibAdds a progress bar to joblib.Parallel…
unclear · top 15,000 on PyPI