🌲 super fast, all natural json logger
Other
10544
86
764

banner

pino

npm version Build Status js-standard-style

Very low overhead Node.js logger.

Documentation

Install

$ npm install 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/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 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.

Contributors

mcollina
jsumners
dependabot[bot]
davidmarkclements
Fdawgs
kibertoad
yellowbrickc
mmcgahan
tniessen
climba03003
dgonzalez
salesh
watson
itavy
ovhemert
osher
mksmtn
nwoltman
adam-26
mojavelinux
glensc
Eomm
alextes
baterson
justinhelmer
SimenB
satazor
Rauno56
sameer-coder
zekth
indexzero
iamolegga
AleksandrSl
axyz
aandrewww
Arun4rangan
chasers
dadoonet
dhalbrook
disintegrator
guilhermelimak
iztsv
jonathansamines
madelinecameron
marcbachmann
zenflow
xom9ikk
naveensrinivasan
voxpelli
rvagg
tlvince
delvedor
laSinteZ
Xstoudi
yonjah
mihai1voicescu
n4zukker
pan93412
slavasitnikov
davidedantonio
doron2402
ShogunPanda
thomasthiebaud
0xflotus
bienzaaron
admataz
AdrieanKhisbe
alanpcs
odino
sashashura
alexpts
SkeLLLa
kblcuk
alvaropinot
ornotandrew
andrew-demb
castarco
anhthang
al-bglhk
arkerone
bbi22
bizob2828
mrbrianevans
bbonagura9
posquit0
metcoder95
theproductiveprogrammer
carbonrobot
chrisandrews7
thechriswalker
savardc
cberg-zalando
holmok
clemyan
colmose
coreyfarrell
cmawhorter
dancastillo
danjenkins
robertsLando