flake8-logging-format
Decision gist · record as of 2026-08-14
Yes. This is a lightweight, actively maintained flake8 extension with no dependencies, permissive licensing, and a clear, focused purpose. Install it if your team wants to enforce structured logging discipline and reduce the risk of sensitive data leaking through log statements. The violation codes are disabled by default, so you can adopt it incrementally by enabling only the rules that match your logging policy.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction installation as a pure Python wheel with no runtime dependencies.
- Actively maintained with recent releases; last commit in 2026-04-12 and latest release in 2024-06-11.
License · maintenance · safety
Apache License 2.0 (permissive) — Licensed under Apache License 2.0 (permissive), allowing free use, modification, and distribution with minimal restrictions.
last release 2024-06-11 (794 days) · last repo commit 2026-04-12 · 137 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 368,055 downloads/mo, #7,191 on PyPI
Alternatives
Verify before relying
pip install flake8-logging-format
# In setup.cfg or .flake8:
[flake8]
enable-extensions=G
# Then run:
flake8 your_code.py- Whether the package requires a specific minimum Python version (requires_python is unspecified in metadata)
- Whether all violation codes (G001–G202) are enabled by default or require explicit configuration beyond enable-extensions=G
What it is and what it does
This is a flake8 plugin that enforces a specific logging discipline: it detects when Python logging calls use format strings, concatenation, f-strings, or other string-building techniques instead of passing non-constant data through the logging `extra` dictionary. The plugin checks for violations like `.format()`, `%` formatting, `+` concatenation, and f-strings in log messages, and can optionally enforce that `extra` keys come from a whitelisted set to prevent accidental exposure of sensitive data in logs.
The package is designed for teams that want to separate log message templates (constants) from dynamic data (passed via `extra`), reducing the risk of sensitive information leaking into logs through careless string construction. It supports plugin-based whitelisting via entry points and has special handling for debug-level logs and debug-prefixed keys. No runtime dependencies are required; it integrates directly into flake8's linting workflow.
Use it for
- Enforce consistent logging patterns across a codebase to prevent accidental data leakage in production logs.
- Validate that logging calls use the `extra` dictionary instead of string formatting for dynamic values.
- Whitelist allowed field names in logging `extra` dictionaries to catch typos or unauthorized keys.
- Detect and flag improper exception logging (e.g., using `error(..., exc_info=True)` instead of `exception()`).
- Prevent use of deprecated `warn()` method in favor of the standard `warning()` method.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
This is a lightweight, actively maintained flake8 extension with no dependencies, permissive licensing, and a clear, focused purpose. Install it if your team wants to enforce structured logging discipline and reduce the risk of sensitive data leaking through log statements. The violation codes are disabled by default, so you can adopt it incrementally by enabling only the rules that match your logging policy.
Install
flake8-logging-format on PyPI
Before you install
Low friction installation as a pure Python wheel with no runtime dependencies. Actively maintained with recent releases; last commit in 2026-04-12 and latest release in 2024-06-11.
License in practice
Licensed under Apache License 2.0 (permissive), allowing free use, modification, and distribution with minimal restrictions.
Quickstart
pip install flake8-logging-format
# In setup.cfg or .flake8:
[flake8]
enable-extensions=G
# Then run:
flake8 your_code.py
Verify before relying
- Whether the package requires a specific minimum Python version (requires_python is unspecified in metadata)
- Whether all violation codes (G001–G202) are enabled by default or require explicit configuration beyond enable-extensions=G
Package facts
| License | Apache License 2.0 permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 794 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 368,055 / month, #7,191 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Framework :: Flake8 |
Evidence: flake8_logging_format-2024.24.12-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “flake8 logging format validation”
- flake8-logging-formatA flake8 extension that enforces logging best practices by detecting…
- flake8-string-formatA Flake8 plugin that validates string format calls, checking for…
- flake8-blackA flake8 plugin that runs black's code style validation within the…
Give your agent the search over MCP, or paste the wish link into any chat.
More Quality Assurance packages
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
Ruff is a Python linter and code formatter written in Rust that combines linting, formatting, and code fixing into a single tool, replacing Flake8, Black, isort, and related utilities.
Pexpect spawns and controls interactive console applications by sending input and matching output patterns, automating tasks that would otherwise require manual interaction.
Black reformats Python source code to a consistent style by parsing entire files and rewriting them according to an opinionated, deterministic set of rules, eliminating manual formatting decisions.
pytest-xdist distributes pytest tests across multiple CPU cores or machines to speed up test execution, with the simplest usage being `pytest -n auto` to spawn workers equal to available CPUs.
Install it if your test suite takes long enough that parallelization would save meaningful time.
Validates AWS CloudFormation templates in YAML or JSON format against resource provider schemas and best practices, checking property values and configuration correctness.
Install it if you work with CloudFormation templates.
See also flake8-logging · flake8-implicit-str-concat · flake8-no-implicit-concat · flake8-pie · flake8-copyright · flake8-literal · flake8-noqa · flake8-print · logging-formatter-anticrlf · mypy-strict-kwargs