UNPKG

pino

Version:

super fast, all natural json logger

146 lines (131 loc) 3.17 kB
import { pino } from '../../pino' import { expectType } from "tsd"; // Single const transport = pino.transport({ target: '#pino/pretty', options: { some: 'options for', the: 'transport' } }) pino(transport) expectType<pino.Logger>(pino({ transport: { target: 'pino-pretty' }, })) // Multiple const transports = pino.transport({targets: [ { level: 'info', target: '#pino/pretty', options: { some: 'options for', the: 'transport' } }, { level: 'trace', target: '#pino/file', options: { destination: './test.log' } } ]}) pino(transports) expectType<pino.Logger>(pino({ transport: {targets: [ { level: 'info', target: '#pino/pretty', options: { some: 'options for', the: 'transport' } }, { level: 'trace', target: '#pino/file', options: { destination: './test.log' } } ]}, })) const transportsWithCustomLevels = pino.transport({targets: [ { level: 'info', target: '#pino/pretty', options: { some: 'options for', the: 'transport' } }, { level: 'foo', target: '#pino/file', options: { destination: './test.log' } } ], levels: { foo: 35 }}) pino(transports) expectType<pino.Logger>(pino({ transport: {targets: [ { level: 'info', target: '#pino/pretty', options: { some: 'options for', the: 'transport' } }, { level: 'trace', target: '#pino/file', options: { destination: './test.log' } } ], levels: { foo: 35 } }, })) const transportsWithoutOptions = pino.transport({ targets: [ { target: '#pino/pretty' }, { target: '#pino/file' } ], levels: { foo: 35 } }) pino(transports) expectType<pino.Logger>(pino({ transport: { targets: [ { target: '#pino/pretty' }, { target: '#pino/file' } ], levels: { foo: 35 } }, })) const pipelineTransport = pino.transport({ pipeline: [{ target: './my-transform.js' }, { // Use target: 'pino/file' to write to stdout // without any change. target: 'pino-pretty' }] }) pino(pipelineTransport) expectType<pino.Logger>(pino({ transport: { pipeline: [{ target: './my-transform.js' }, { // Use target: 'pino/file' to write to stdout // without any change. target: 'pino-pretty' }] } })) type TransportConfig = { id: string } // Custom transport params const customTransport = pino.transport<TransportConfig>({ target: 'custom', options: { id: 'abc' } }) pino(customTransport) // Worker pino.transport({ target: 'custom', worker: { argv: ['a', 'b'], stdin: false, stderr: true, stdout: false, autoEnd: true, }, options: { id: 'abc' } }) // Dedupe pino.transport({ targets: [], dedupe: true, })