pinojs/pino

🌲 super fast, all natural json logger

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 49 minutes ago
Added to GitGenius on August 6th, 2023
Created on February 16th, 2016
Open Issues & Pull Requests: 167 (+0)
Number of forks: 995
Total Stargazers: 18,151 (+0)
Total Subscribers: 84 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 17.0 hours
Mean response time: 92.3 days
90th percentile: 266.7 days
Tracked items: 206

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 94% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 6% of issues opened in the past year have been closed. Three people close 86% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 79
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 807 days
Stale 30+ days: 76
Stale 90+ days: 69

Recent activity

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

Top labels

  • good first issue (34)
  • bug (31)
  • documentation (25)
  • help wanted (15)
  • question (15)
  • enhancement (10)
  • v6 (4)
  • TypeScript (3)

Detailed Description

Pino is a JavaScript logging library designed for Node.js environments that prioritizes performance and structured JSON output. The project is maintained at http://getpino.io and emphasizes very low overhead logging as its core value proposition. The library outputs logs in JSON format by default, making it suitable for structured logging pipelines and analytics systems.

The repository demonstrates active maintenance and community engagement.

Pino's feature set addresses multiple logging concerns. The library supports transports, which are log processors that run in separate worker threads to avoid blocking Node's single-threaded event loop. This architecture allows for sending logs, triggering alerts, reformatting, and other log processing operations without impacting application performance. The project includes comprehensive documentation covering benchmarks, API usage, browser compatibility, log redaction, child loggers, transports, diagnostics, web framework integration, pretty printing for development, and asynchronous logging patterns.

The library integrates with popular web frameworks including Fastify, Express, Hapi, Restify, Koa, Node core HTTP, Nest, and Hono. For development environments, Pino works with the pino-pretty module to format JSON logs into human-readable output. The project also supports bundling with tools like webpack and esbuild, expanding its usability across different deployment scenarios.

Performance benchmarks are a central focus of Pino's documentation, with claims that the logger is over 5x faster than alternatives in many cases. This performance emphasis aligns with the project's classification across multiple performance-related categories including low overhead, instrumentation, and streaming. The library supports various log levels and compressible output formats, making it suitable for high-volume logging scenarios where resource efficiency matters.

Pino's runtime support extends beyond standard Node.js environments. The project works on Bare and Pear runtimes through the pino-bare compatibility module, demonstrating efforts to support emerging JavaScript runtime platforms. The project maintains a Long Term Support policy documented in its repository.

The codebase is written in JavaScript and follows the standard code style as indicated by its badges. The project is licensed under MIT and was originally sponsored by nearForm, with current sponsorship from Platformatic. The team includes Matteo Collina, David Mark Clements, James Sumners, and Thomas Watson Steen as core maintainers. The project operates as an OPEN Open Source Project, granting commit access to contributors making significant contributions.