pino-http
pino-http copied to clipboard
customProps causes TypeError: logger[stringifySym] is not a function
customProps
option is causing application to crash with
TypeError: logger[stringifySym] is not a function
/Users/xxxx/node_modules/pino-http/logger.js:106
const customPropBindingStr = logger[stringifySym](customPropBindings).replace(/[{}]/g, '')
After doing some debugging, seems that pino.child(bindings)
call returns child logger which doesn't contain most of the symbols, including Symbol(pino.stringify)
.
You can see this by:
const logger = pino(pinoOptions);
console.log({logger})
const child = logger.child({});
console.log({child})
Internally pino-http does create child logger and stringify symbol is expected to be included later in the logger (https://github.com/pinojs/pino-http/blob/master/logger.js#L106)
if (customPropBindings) {
const customPropBindingStr = logger[stringifySym](customPropBindings).replace(/[{}]/g, '')
const customPropBindingsStr = logger[chindingsSym]
if (!customPropBindingsStr.includes(customPropBindingStr)) {
log = logger.child(customPropBindings)
}
}
I was testing with pino 8.16.2 and pino-http 8.5.1