https://github.com/pinojs/pino
🌲 super fast, all natural json logger
https://github.com/pinojs/pino
fast json logger nodejs pino
Last synced: about 7 hours ago
JSON representation
🌲 super fast, all natural json logger
- Host: GitHub
- URL: https://github.com/pinojs/pino
- Owner: pinojs
- License: mit
- Created: 2016-02-16T14:14:29.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2025-04-01T15:23:50.000Z (14 days ago)
- Last Synced: 2025-04-15T07:02:44.931Z (about 10 hours ago)
- Topics: fast, json, logger, nodejs, pino
- Language: JavaScript
- Homepage: http://getpino.io
- Size: 2.96 MB
- Stars: 15,223
- Watchers: 84
- Forks: 896
- Open Issues: 137
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-crafted-nodejs - pino - Very low overhead Node.js logger, inspired by Bunyan. (Packages / Logging)
- awesome - pinojs/pino - 🌲 super fast, all natural json logger (JavaScript)
- awesome - pinojs/pino - 🌲 super fast, all natural json logger (JavaScript)
- awesome - pino - 🌲 super fast, all natural json logger 🌲 (JavaScript)
- awesome-nodejs - pino - Extremely fast logger inspired by Bunyan.  (Repository / Logging)
- awesome-ccamel - pinojs/pino - 🌲 super fast, all natural json logger (JavaScript)
- awesome-repositories - pinojs/pino - 🌲 super fast, all natural json logger (JavaScript)
- awesome-github-star - pino
- awesome-list - pino
- awesome-nodejs - pino - Extremely fast logger inspired by Bunyan. (Packages / Logging)
- awesome-nodejs - pino - super fast, all natural json logger - ★ 3262 (Logging)
- awesome-node - pino - Extremely fast logger inspired by Bunyan. (Packages / Logging)
- awesome-nodejs-cn - pino - 受Bunyan启发的超快速记录器. (目录 / 日志)
- awesome-nodejs - pino - 轻量的 node.js 日志库 (Uncategorized / Uncategorized)
- awesome-nodejs-cn - pino - **star:14879** 非常快的日志工具,灵感来自Bunyan ![star > 2000][Awesome] (包 / 日志)
- awesome-starred - pinojs/pino - 🌲 super fast, all natural json logger (JavaScript)
- awesome-starred - pinojs/pino - 🌲 super fast, all natural json logger (JavaScript)
- awesome-nodejs-cn - pino - 受 `Bunyan` 启发的超快速日志记录器 (包 / 日志)
README

# pino
[](https://www.npmjs.com/package/pino)
[](https://github.com/pinojs/pino/actions)
[](https://standardjs.com/)[Very low overhead](#low-overhead) Node.js logger.
## 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)
* [Help ⇗](/docs/help.md)
* [Long Term Support Policy ⇗](/docs/lts.md)## 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
```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)### 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
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⇗](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.
### Bundling support
Pino supports being bundled using tools like webpack or esbuild.
See [Bundling](docs/bundling.md) document for more information.
### Matteo Collina
### David Mark Clements
### James Sumners
### 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](https://github.com/pinojs/pino/blob/main/CONTRIBUTING.md) file for more details.
This project was kindly sponsored by [nearForm](https://nearform.com).
This project is kindly sponsored by [Platformatic](https://platformatic.dev).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