|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # pino
 | 
						
						
						
							|  |  | [](https://www.npmjs.com/package/pino)
 | 
						
						
						
							|  |  | [](https://github.com/pinojs/pino/actions)
 | 
						
						
						
							|  |  | [](https://snyk.io/test/github/pinojs/pino)
 | 
						
						
						
							|  |  | [](https://coveralls.io/github/pinojs/pino?branch=master)
 | 
						
						
						
							|  |  | [](https://standardjs.com/)
 | 
						
						
						
							|  |  | [](https://definitelytyped.org)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | [Very low overhead](#low-overhead) Node.js logger.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | This README and linked documentation covers pino v6.x,
 | 
						
						
						
							|  |  | you can find all related docs in: https://github.com/pinojs/pino/tree/v6.x.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ## Documentation
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | * [Benchmarks ⇗](/docs/benchmarks.md)
 | 
						
						
						
							|  |  | * [API ⇗](/docs/api.md)
 | 
						
						
						
							|  |  | * [Browser API ⇗](/docs/browser.md)
 | 
						
						
						
							|  |  | * [Redaction ⇗](/docs/redaction.md)
 | 
						
						
						
							|  |  | * [Child Loggers ⇗](/docs/child-loggers.md)
 | 
						
						
						
							|  |  | * [Transports ⇗](/docs/transports.md)
 | 
						
						
						
							|  |  | * [Web Frameworks ⇗](/docs/web.md)
 | 
						
						
						
							|  |  | * [Pretty Printing ⇗](/docs/pretty.md)
 | 
						
						
						
							|  |  | * [Asynchronous Logging ⇗](/docs/asynchronous.md)
 | 
						
						
						
							|  |  | * [Ecosystem ⇗](/docs/ecosystem.md)
 | 
						
						
						
							|  |  | * [Legacy](/docs/legacy.md)
 | 
						
						
						
							|  |  | * [Help ⇗](/docs/help.md)
 | 
						
						
						
							|  |  | * [Long Term Support Policy ⇗](/docs/lts.md)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ## Install
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | $ npm install pino@six
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ## Usage
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```js
 | 
						
						
						
							|  |  | 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](docs/web.md#fastify)
 | 
						
						
						
							|  |  | * [Pino with Express](docs/web.md#express)
 | 
						
						
						
							|  |  | * [Pino with Hapi](docs/web.md#hapi)
 | 
						
						
						
							|  |  | * [Pino with Restify](docs/web.md#restify)
 | 
						
						
						
							|  |  | * [Pino with Koa](docs/web.md#koa)
 | 
						
						
						
							|  |  | * [Pino with Node core `http`](docs/web.md#http)
 | 
						
						
						
							|  |  | * [Pino with Nest](docs/web.md#nest)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <a name="essentials"></a>
 | 
						
						
						
							|  |  | ## Essentials
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ### Development Formatting
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | The [`pino-pretty`](https://github.com/pinojs/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
 | 
						
						
						
							|  |  | is conducted in a separate process. In Pino parlance we call all log processors
 | 
						
						
						
							|  |  | "transports", and recommend that the transports be run as separate
 | 
						
						
						
							|  |  | processes, piping the stdout of the application to the stdin of the transport.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | For more details see our [Transports⇗](docs/transports.md) 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](docs/benchmarks.md) document for comparisons.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <a name="team"></a>
 | 
						
						
						
							|  |  | ## The Team
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ### Matteo Collina
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <https://github.com/pinojs>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <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](https://github.com/pinojs/pino/blob/master/CONTRIBUTING.md) file for more details.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <a name="acknowledgements"></a>
 | 
						
						
						
							|  |  | ## Acknowledgements
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | This project was kindly sponsored by [nearForm](https://nearform.com).
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Logo and identity designed by Cosmic Fox Design: https://www.behance.net/cosmicfox.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ## License
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Licensed under [MIT](./LICENSE).
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | [elasticsearch]: https://www.elastic.co/products/elasticsearch
 | 
						
						
						
							|  |  | [kibana]: https://www.elastic.co/products/kibana
 |