hynek/structlog

Simple, powerful, and fast logging for Python.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 1 hour ago
Type:Library / SDKCategory(s):Logging & TracingDevOps & Observability
Added to GitGenius on September 14th, 2026
Created on August 13th, 2013
Open Issues & Pull Requests: 38 (+0)
GitHub issues: Enabled
Number of forks: 299
Total Stargazers: 4,957 (+0)
Total Subscribers: 37 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.0 days
Mean response time: 80.1 days
90th percentile: 110.3 days
Tracked items: 89

Most active contributors

Sign in to see contributor activity.

How this project is maintained

91% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 82% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 22
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,138 days
Stale 30+ days: 20
Stale 90+ days: 15

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (11)
  • stdlib (7)
  • waiting for feedback (4)
  • bug (3)
  • external (1)
  • on hold (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

structlog is a structured logging library for Python that provides simple, powerful, and fast logging through a flexible, function-based architecture.

The library addresses the problem of making logs machine-readable and queryable by treating logging as a series of transformations on dictionaries rather than string formatting. Instead of concatenating strings into log messages, structlog accepts key-value pairs that flow through a pipeline of processors. Each processor can filter, enrich, or format the data before output. This approach makes logs naturally structured and enables downstream systems to parse and analyze them without fragile string parsing.

Developers should choose structlog if they need production-grade logging with flexibility in both output format and destination. It suits projects ranging from simple scripts to complex distributed systems. The tool works well whether you want structlog to handle output directly or forward entries to the standard library's logging module. Built-in formatters support JSON, logfmt, and pretty console output. The README does not name specific alternatives for direct comparison.

The project maintains a clear separation between its core pipeline logic and output handling, allowing users to customize behavior without modifying the library itself. Development activity shows consistent attention to performance, with the codebase designed to avoid legacy constraints that hamper flexibility. The project explicitly documents policies around code quality and external contributions, indicating deliberate governance of its evolution.