Optionalbase
Optionalbrowser
Browser only, see http://getpino.io/#/docs/browser.
Optionalas
The asObject option will create a pino-like
log object instead of passing all arguments to a console
method. When write is set,
asObject will always be true.
Optionaldisabled?: boolean
The disabled option will disable logging in browser if set to true, by default it is set to false.
Optionalformatters?: { Optionallevel?: ((label: string,
number: number) => object)
Changes the shape of the log level. The default shape is { level: number }.
Optionallog?: ((object: Record<string, unknown>) => Record<string, unknown>)
Changes the shape of the log object.
Optionalserialize?: boolean | string[]
The serializers provided to pino are
ignored by default in the browser, including the
standard serializers provided with Pino. Since the
default destination for log messages is the console,
values such as Error objects are enhanced
for inspection, which they otherwise wouldn't be if the
Error serializer was enabled. We can turn all
serializers on or we can selectively enable them via an
array.
When serialize is true the
standard error serializer is also enabled (see
https://github.com/pinojs/pino/blob/master/docs/api.md#pino-stdserializers). This is a global serializer which will apply to any
Error objects passed to the logger methods.
If serialize is an array the standard error
serializer is also automatically enabled, it can be
explicitly disabled by including a string in the
serialize array: !stdSerializers.err (see
example).
The serialize array also applies to any
child logger serializers (see
https://github.com/pinojs/pino/blob/master/docs/api.md#bindingsserializers-object
for how to set child-bound serializers).
Unlike server pino the serializers apply to every object
passed to the logger method, if the
asObject option is true, this
results in the serializers applying to the first object
(as in server pino).
For more info on serializers see https://github.com/pinojs/pino/blob/master/docs/api.md#serializers-object.
const pino = require('pino')({
serializers: {
custom: myCustomSerializer,
another: anotherSerializer
},
browser: {
serialize: ['custom']
}
})
// following will apply myCustomSerializer to the custom property,
// but will not apply anotherSerializer to another key
pino.info({custom: 'a', another: 'b'})
Optionaltransmit?: { Options for transmission of logs.
const pino = require('pino')({
browser: {
transmit: {
level: 'warn',
send: function (level, logEvent) {
if (level === 'warn') {
// maybe send the logEvent to a separate endpoint
// or maybe analyse the messages further before sending
}
// we could also use the `logEvent.level.value` property to determine
// numerical value
if (logEvent.level.value >= 50) { // covers error and fatal
// send the logEvent somewhere
}
}
}
}
})
Optionallevel?: LevelOrString
Specifies the minimum level (inclusive) of when the
send function should be called, if not
supplied the send function will be
called based on the main logging
level (set via
options.level, defaulting to
info).
Remotely record log messages.
Optionalwrite?: WriteFn | {
Instead of passing log messages to
console.log they can be passed to a
supplied function. If write is set to a
single function, all logging objects are passed to this
function. If write is an object, it can
have methods that correspond to the levels. When a
message is logged at a given level, the corresponding
method is called. If a method isn't present, the logging
falls back to using the console.
Optionalcrlf
logs newline delimited JSON with \r\n instead of
\n. Default: false.
OptionalcustomUse this option to define additional logging levels. The keys of the object correspond the namespace of the log level, and the values should be the numerical value of the level.
Optionaldepth
Stringification limit at a specific nesting depth when logging
circular object. Default: 5.
Optionaldestination
Optionaledge
Stringification limit of properties/elements when logging a
specific object/array with circular references. Default:
100.
Optionalenabled
Enables logging. Default: true.
OptionalerrorThe string key for the 'error' in the JSON object. Default: "err".
Optionalformatters
An object containing functions for formatting the shape of the log lines. These functions should return a JSONifiable object and should never throw. These functions allow for full customization of the resulting log lines. For example, they can be used to change the level key name or to enrich the default metadata.
Optionalbindings?: ((bindings: Bindings) => object)
Changes the shape of the bindings. The default shape is { pid, hostname }. The function takes a single argument, the bindings object. It will be called every time a child logger is created.
Optionallevel?: ((label: string,
number: number) => object)
Changes the shape of the log level. The default shape is { level: number }. The function takes two arguments, the label of the level (e.g. 'info') and the numeric value (e.g. 30).
Optionallog?: ((object: Record<string, unknown>) => Record<string, unknown>)
Changes the shape of the log object. This function will be called every time one of the log methods (such as .info) is called. All arguments passed to the log method, except the message, will be pass to this function. By default it does not change the shape of the log object.
Optionalhooks
An object mapping to hook functions. Hook functions allow for customizing internal logger operations. Hook functions must be synchronous functions.
OptionallogAllows for manipulating the parameters passed to logger methods. The signature for this hook is logMethod (args, method, level) {}, where args is an array of the arguments that were passed to the log method and method is the log method itself, and level is the log level. This hook must invoke the method function by using apply, like so: method.apply(this, newArgumentsArray).
Optionallevel
One of the supported levels or silent to disable
logging. Any other value defines a custom level and requires
supplying a level value via levelVal. Default:
'info'.
OptionallevelUse this option to define custom comparison of log levels. Useful to compare custom log levels or non-standard level values. Default: "ASC"
Optionallevel
When defining a custom log level via level, set to an integer
value to define the new level. Default:
undefined.
Optionallogger
OptionalmessageThe string key for the 'message' in the JSON object. Default: "msg".
Optionalmixin
If provided, the mixin function is called each
time one of the active logging methods is called. The function
must synchronously return an object. The properties of the
returned object will be added to the logged JSON.
Optionalmixin
If provided, the mixinMergeStrategy function is
called each time one of the active logging methods is called.
The first parameter is the value mergeObject or
an empty object, the second parameter is the value resulting
from mixin() or an empty object. The function
must synchronously return an object.
OptionalmsgA string that would be prefixed to every message (and child message)
Optionalname
The name of the logger. Default: undefined.
OptionalnestedThe string key to place any logged object under.
OptionalonOptional child creation callback.
Optionalredact
As an array, the redact option specifies paths that should have their values redacted from any log output.
Each path must be a string using a syntax which corresponds to JavaScript dot and bracket notation.
If an object is supplied, three options can be specified:
paths (String[]): Required. An array of paths
censor (String): Optional. A value to overwrite key which are to be redacted. Default: '[Redacted]'
remove (Boolean): Optional. Instead of censoring the value, remove both the key and the value. Default: false
Optionalsafe
Avoid error causes by circular references in the object tree.
Default: true.
Optionalserializers
an object containing functions for custom serialization of objects. These functions should return an JSONifiable object and they should never throw. When logging an object, each top-level property matching the exact key of a serializer will be serialized using the defined serializer.
Optionaltimestamp
Enables or disables the inclusion of a timestamp in the log
message. If a function is supplied, it must synchronously
return a JSON string representation of the time. If set to
false, no timestamp will be included in the
output. See stdTimeFunctions for a set of available functions
for passing in as a value for this option. Caution: any sort
of formatted time will significantly slow down Pino's
performance.
Optionaltransport
Optionaluse
Use this option to only use defined
customLevels and omit Pino's levels. Logger's
default level must be changed to a value in
customLevels in order to use
useOnlyCustomLevels Warning: this option may not
be supported by downstream transports.
key-value object added as child logger to each log line. If set to null the base child logger is not added