# pino

> super fast, all natural json logger

Latest version **10.3.1** (published 2026-02-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install pino
pnpm add pino
yarn add pino
bun add pino
```

Provides the command `pino`.

## Health

**Score 70/100 (B)** — status: stable.

Positive: has types; no vulnerabilities; has provenance; high maintenance score; high quality score; popular repo.

Warnings: low downloads; no esm support.

## Facts

| | |
|---|---|
| Version | 10.3.1 |
| Published | 2026-02-09 |
| First published | 2016-02-21 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 11 |
| Unpacked size | 648 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 18184 |
| Author | Matteo Collina |
| Maintainers | matteo.collina, jsumners, watson, davidmarkclements |
| Keywords | fast, logger, stream, json |

## Links

- npm: https://www.npmjs.com/package/pino
- Repository: https://github.com/pinojs/pino
- Homepage: https://getpino.io
- Issues: https://github.com/pinojs/pino/issues
- npm.io page: https://npm.io/package/pino

## Dependencies (11)

- [sonic-boom](https://npm.io/package/sonic-boom.md) ^4.0.1
- [atomic-sleep](https://npm.io/package/atomic-sleep.md) ^1.0.0
- [real-require](https://npm.io/package/real-require.md) ^0.2.0
- [thread-stream](https://npm.io/package/thread-stream.md) ^4.0.0
- [@pinojs/redact](https://npm.io/package/@pinojs/redact.md) ^0.4.0
- [process-warning](https://npm.io/package/process-warning.md) ^5.0.0
- [on-exit-leak-free](https://npm.io/package/on-exit-leak-free.md) ^2.1.0
- [pino-std-serializers](https://npm.io/package/pino-std-serializers.md) ^7.0.0
- [safe-stable-stringify](https://npm.io/package/safe-stable-stringify.md) ^2.3.1
- [quick-format-unescaped](https://npm.io/package/quick-format-unescaped.md) ^4.0.3
- [pino-abstract-transport](https://npm.io/package/pino-abstract-transport.md) ^3.0.0

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 10.3.1 (latest) — 2026-02-09
- 6.14.0 (six) — 2022-02-15
- 7.0.0-rc.9 (next) — 2021-10-07
- 4.17.6 (four) — 2018-07-29
- 2.16.0 (legacy) — 2017-01-10
- 10.3.0 — 2026-01-23
- 10.2.1 — 2026-01-19
- 10.2.0 — 2026-01-14
- 10.1.1 — 2026-01-09
- 10.1.0 — 2025-10-18
- 9.14.0 — 2025-10-18
- 10.0.0 — 2025-10-03
- 9.13.1 — 2025-10-03
- 9.13.0 — 2025-10-02
- 9.12.0 — 2025-09-28
- … 318 more at https://npm.io/package/pino/versions

## 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) JavaScript 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)
* [Diagnostics ⇗](/docs/diagnostics.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)

## Runtimes

### Node.js

Pino is built to run on [Node.js](http://nodejs.org).

### Bare

Pino works on [Bare](https://github.com/holepunchto/bare) with the [`pino-bare`](https://github.com/pinojs/pino-bare) compatability module.

### Pear

Pino works on [Pear](https://docs.pears.com), which is built on [Bare](https://github.com/holepunchto/bare), with the [`pino-bare`](https://github.com/pinojs/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

```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)
* [Pino with Hono](docs/web.md#hono)

<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:

![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.

<a name="team"></a>
## 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](https://github.com/pinojs/pino/blob/main/CONTRIBUTING.md) file for more details.

<a name="acknowledgments"></a>
## Acknowledgments

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

---
_Source: https://npm.io/package/pino · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
