pinojs/pino
pinojs/pino has 18,288 GitHub stars and 1,014 forks. GitHot measured +3 stars in 24 hours. Last checked 2026-11-06 21:33 UTC. Last push 2026-10-06.
🌲 super fast, all natural json logger
Measured star growth
- in 24h
- +3
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
pino
Very low overhead JavaScript logger.
Documentation
- Benchmarks ⇗
- API ⇗
- Browser API ⇗
- Redaction ⇗
- Child Loggers ⇗
- Transports ⇗
- Diagnostics ⇗
- Web Frameworks ⇗
- Pretty Printing ⇗
- Asynchronous Logging ⇗
- Ecosystem ⇗
- Help ⇗
- Long Term Support Policy ⇗
Runtimes
Node.js
Pino is built to run on Node.js.
Bare
Pino works on Bare with the pino-bare compatibility module.
Pear
Pino works on Pear, which is built on Bare, with the pino-bare compatibility module.
Install
Using NPM:
$ npm install pino
Using YARN:
$ yarn add pino
If you would like to install pino v6, refer to https://github.com/pinojs/pino/tree/v6.x.
Usage
const logger = require('pino')()
logger.info('hello world')
const child = logger.child({ a: 'property' })
child.info('hello child!')
This produces:
{"level":30,"time":1531171074631,"msg":"hello world","pid":657,"hostname":"Davids-MBP-3.fritz.box"}
{"level":30,"time":1531171082399,"msg":"hello child!","pid":657,"hostname":"Davids-MBP-3.fritz.box","a":"property"}
For using Pino with a web framework see:
- Pino with Fastify
- Pino with Express
- Pino with Hapi
- Pino with Restify
- Pino with Koa
- Pino with Node core
http - Pino with Nest
- Pino with Hono
Essentials
Development Formatting
The pino-pretty module can be used to
format logs during development:

Transports & Log Processing
Due to Node's single-threaded event-loop, it's highly recommended that sending, alert triggering, reformatting, and all forms of log processing are conducted in a separate process or thread.
In Pino terminology, we call all log processors "transports" and recommend that the
transports be run in a worker thread using our pino.transport API.
For more details see our Transports⇗ document.
Low overhead
Using minimum resources for logging is very important. Log messages tend to get added over time and this can lead to a throttling effect on applications – such as reduced requests per second.
In many cases, Pino is over 5x faster than alternatives.
See the Benchmarks document for comparisons.
Bundling support
Pino supports being bundled using tools like webpack or esbuild.
See Bundling document for more information.
The Team
Matteo Collina
https://www.npmjs.com/~matteo.collina
https://twitter.com/matteocollina
David Mark Clements
https://github.com/davidmarkclements
https://www.npmjs.com/~davidmarkclements
https://twitter.com/davidmarkclem
James Sumners
https://www.npmjs.com/~jsumners
https://twitter.com/jsumners79
Thomas Watson Steen
Contributing
Pino is an OPEN Open Source Project. This means that:
Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project.
See the CONTRIBUTING.md file for more details.
Acknowledgments
This project was kindly sponsored by nearForm. This project is kindly sponsored by Platformatic.
Logo and identity designed by Cosmic Fox Design: https://www.behance.net/cosmicfox.
License
Licensed under MIT.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,568 starspublic-apis/public-apis
A collective list of free APIs
496,843 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
439,252 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,103 stars