Pino

Pino

Pino is a fast and lightweight logging library for Node.js that is designed to be extremely performant and efficient. It has a simple and easy-to-use API that allows developers to log messages at different levels, including debug, info, warn, and error. Pino also provides a wide range of features, such as support for logging to multiple destinations, including files, streams, and syslog, as well as support for custom log levels, serializers, and formatters.

One of the main advantages of Pino is its speed and low overhead, which makes it ideal for use in high-performance applications and microservices. Pino also integrates with popular Node.js frameworks, such as Express and Hapi, and supports a variety of plugins and extensions to extend its functionality.

NPM downloads

Github stars

Github forks

Number of contributors

Number of contributors 30 days

Homepage

https://getpino.io/

Pepository

https://github.com/pinojs/pino

NPM

https://www.npmjs.com/package/pino

Number of Contributors

302

Number of days since last commit

6

Top contributors all time

Matteo Collina583
James Sumners232
davidmarkclements216
David Mark Clements132
dependabot[bot]72
Frazer Smith16
Igor Savin10
Michael McGahan9
Tobias Nießen9
David Gonzalez8
KaKa8
Rob McGuinness8
yellowbrickc8
salesh7
Octavian Ionescu6
Osmond van Hemert6
osher6
Maksim5
Matthew Adams5
Nathan Woltman5

Top contributors last 30 days

Matteo Collina4
Agostino Cavarero1
Katherine1
bngarren1
dependabot[bot]1
wolfy13391

Readme

banner

pino

npm version
Build Status
js-standard-style

Very low overhead Node.js logger.

Documentation

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:

Essentials

Development Formatting

The pino-pretty module can be used to
format logs during development:

pretty demo

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://github.com/mcollina

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://github.com/jsumners

https://www.npmjs.com/~jsumners

https://twitter.com/jsumners79

Thomas Watson Steen

https://github.com/watson

https://www.npmjs.com/~watson

https://twitter.com/wa7son

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.

Logo and identity designed by Cosmic Fox Design: https://www.behance.net/cosmicfox.

License

Licensed under MIT.

Tags

fastloggerstreamjsonnodejspino