Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pinojs/pino
🌲 super fast, all natural json logger
https://github.com/pinojs/pino
fast json logger nodejs pino
Last synced: 3 days 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 (almost 9 years ago)
- Default Branch: main
- Last Pushed: 2024-11-25T16:44:57.000Z (17 days ago)
- Last Synced: 2024-12-06T15:47:42.114Z (6 days ago)
- Topics: fast, json, logger, nodejs, pino
- Language: JavaScript
- Homepage: http://getpino.io
- Size: 2.9 MB
- Stars: 14,429
- Watchers: 85
- Forks: 885
- Open Issues: 126
-
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-cn - pino - 受 `Bunyan` 启发的超快速日志记录器 (包 / 日志)
- awesome-nodejs - pino - Extremely fast logger inspired by Bunyan. ![](https://img.shields.io/github/stars/pinojs/pino.svg?style=social&label=Star) (Repository / Logging)
- awesome-nodejs-cn - pino - **star:14300** 非常快的日志工具,灵感来自Bunyan ![star > 2000][Awesome] (包 / 日志)
- 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)
README
![banner](pino-banner.png)
# pino
[![npm version](https://img.shields.io/npm/v/pino)](https://www.npmjs.com/package/pino)
[![Build Status](https://img.shields.io/github/actions/workflow/status/pinojs/pino/ci.yml)](https://github.com/pinojs/pino/actions)
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](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:![pretty demo](pretty-demo.png)
### 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