--- id: flake8-logging-format version: "2024.24.12" license: Apache License 2.0 license_treatment: permissive maintenance: active --- # flake8-logging-format License: permissive · Maintenance: active · Downloads: 368.1K/mo ## 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 above — verify before relying. A flake8 extension that enforces logging best practices by detecting and preventing format strings, concatenation, and other anti-patterns in Python logging calls. 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 pip install flake8-logging-format uv add flake8-logging-format poetry add flake8-logging-format ## Installing flake8-logging-format 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: unspecified - Install friction: low - Maintenance: active - Downloads: 368.1K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags flake8 logging format validation, python logging linter, enforce logging best practices, detect logging anti-patterns, logging code quality checks, flake8 logging extension, prevent logging format strings, logging, code-quality, flake8-plugin [View on SkillFed](https://skillfed.io/packages/flake8-logging-format) · [View on PyPI](https://pypi.org/project/flake8-logging-format/)