You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					168 lines
				
				4.0 KiB
			
		
		
			
		
	
	
					168 lines
				
				4.0 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								# Legacy
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Legacy Node Support
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Node v4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Node v4 is supported on the [Pino v4](#pino-v4-documentation) line.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Node v0.10-v0.12
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Node v0.10 or Node v0.12 is supported on the [Pino v2](#pino-v2-documentation) line.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Documentation
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Pino v4 Documentation
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<https://github.com/pinojs/pino/tree/v4.x.x/docs>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Pino v3 Documentation
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<https://github.com/pinojs/pino/tree/v3.x.x/docs>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Pino v2 Documentation
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<https://github.com/pinojs/pino/tree/v2.x.x/docs>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Migration
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Pino v4 to Pino v5
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Logging Destination
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								In Pino v4 the destination could be set by passing a stream as the
							 | 
						||
| 
								 | 
							
								second parameter to the exported `pino` function. This is still the
							 | 
						||
| 
								 | 
							
								case in v5. However it's strongly recommended to use `pino.destination`
							 | 
						||
| 
								 | 
							
								which will write logs ~30% faster.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								##### v4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								const stdoutLogger = require('pino')()
							 | 
						||
| 
								 | 
							
								const stderrLogger = require('pino')(process.stderr)
							 | 
						||
| 
								 | 
							
								const fileLogger = require('pino')(fs.createWriteStream('/log/path'))
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								##### v5
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								const stdoutLogger = require('pino')() // pino.destination by default
							 | 
						||
| 
								 | 
							
								const stderrLogger = require('pino')(pino.destination(2))
							 | 
						||
| 
								 | 
							
								const fileLogger = require('pino')(pino.destination('/log/path'))
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Note: This is not a breaking change, `WritableStream` instances are still
							 | 
						||
| 
								 | 
							
								supported, but are slower than `pino.destination` which
							 | 
						||
| 
								 | 
							
								uses the high speed [`sonic-boom` ⇗](https://github.com/mcollina/sonic-boom) library.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* See [`destination` parameter](/docs/api.md#destination)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Extreme Mode
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The `extreme` setting does not exist as an option in Pino v5, instead use
							 | 
						||
| 
								 | 
							
								a `pino.extreme` destination.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								##### v4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								const stdoutLogger = require('pino')({extreme: true})
							 | 
						||
| 
								 | 
							
								const stderrLogger = require('pino')({extreme: true}, process.stderr)
							 | 
						||
| 
								 | 
							
								const fileLogger = require('pino')({extreme: true}, fs.createWriteStream('/log/path'))
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								##### v5
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								const stdoutLogger = require('pino')(pino.extreme())
							 | 
						||
| 
								 | 
							
								const stderrLogger = require('pino')(pino.extreme(2))
							 | 
						||
| 
								 | 
							
								const fileLogger = require('pino')(pino.extreme('/log/path'))
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* See [pino.extreme](/docs/api.md#pino-extreme)
							 | 
						||
| 
								 | 
							
								* See [Extreme mode ⇗](/docs/extreme.md)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Pino CLI is now pino-pretty CLI
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The Pino CLI is provided with Pino v4 for basic log prettification.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								From Pino v5 the CLI is installed separately with `pino-pretty`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								##### v4
							 | 
						||
| 
								 | 
							
								```sh
							 | 
						||
| 
								 | 
							
								$ npm install -g pino
							 | 
						||
| 
								 | 
							
								$ node app.js | pino
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								##### v5
							 | 
						||
| 
								 | 
							
								```sh
							 | 
						||
| 
								 | 
							
								$ npm install -g pino-pretty
							 | 
						||
| 
								 | 
							
								$ node app.js | pino-pretty
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* See [Pretty Printing documentation](/docs/pretty.md)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Programmatic Pretty Printing
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The [`pino.pretty()`](https://github.com/pinojs/pino/blob/v4.x.x/docs/API.md#prettyoptions)
							 | 
						||
| 
								 | 
							
								method has also been removed from Pino v5.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								##### v4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								var pino = require('pino')
							 | 
						||
| 
								 | 
							
								var pretty = pino.pretty()
							 | 
						||
| 
								 | 
							
								pretty.pipe(process.stdout)
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								##### v5
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Instead use the `prettyPrint` option (also available in v4):
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								const logger = require('pino')({
							 | 
						||
| 
								 | 
							
								  prettyPrint: process.env.NODE_ENV !== 'production'
							 | 
						||
| 
								 | 
							
								})
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								In v5 the `pretty-print` module must be installed to use the `prettyPrint` option:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```sh
							 | 
						||
| 
								 | 
							
								npm install --save-dev pino-pretty
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* See [prettyPrint option](/docs/api.md#prettyPrint)
							 | 
						||
| 
								 | 
							
								* See [Pretty Printing documentation](/docs/pretty.md)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Slowtime
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								In Pino v4 a `slowtime` option was supplied, which allowed for full ISO dates
							 | 
						||
| 
								 | 
							
								in the timestamps instead of milliseconds since the Epoch. In Pino v5 this
							 | 
						||
| 
								 | 
							
								has been completely removed, along with the `pino.stdTimeFunctions.slowTime`
							 | 
						||
| 
								 | 
							
								function. In order to achieve the equivalent in v5, a custom
							 | 
						||
| 
								 | 
							
								time function should be supplied:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								##### v4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								const pino = require('pino')
							 | 
						||
| 
								 | 
							
								const logger = pino({slowtime: true})
							 | 
						||
| 
								 | 
							
								// following avoids deprecation warning in v4:
							 | 
						||
| 
								 | 
							
								const loggerAlt = pino({timestamp: pino.stdTimeFunctions.slowTime})
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								##### v5
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								const logger = require('pino')({
							 | 
						||
| 
								 | 
							
								  timestamp: () => ',"time":"' + (new Date()).toISOString() + '"'
							 | 
						||
| 
								 | 
							
								})
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The practice of creating ISO dates in-process for logging purposes is strongly
							 | 
						||
| 
								 | 
							
								recommended against. Instead consider post-processing the logs or using a transport
							 | 
						||
| 
								 | 
							
								to convert the timestamps.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* See [timestamp option](/docs/api.md#timestamp)
							 |