pinojs / pino-http

🌲 high-speed HTTP logger for Node.js
MIT License
535 stars 117 forks source link

quietResLogger clarifications #350

Open whitlaaa opened 2 weeks ago

whitlaaa commented 2 weeks ago

Big fan of pino and was looking at leveraging pino-http to replace some outdated custom setup in our apps. I was looking at the recently added quietResLogger option and was hoping you could clarify its behavior (and perhaps its intended usage based on #235/#339?).

According to the README, setting quietResLogger to true will include the request id under reqId and "only contain req" (I assume that last bit is just a typo that is supposed to say "only contain res").

However, reqId is only included under res.log if quietReqLogger is also set. Is the intended usage to set both options as the unit tests seem to indicate?

Reading #235, I assumed the use case was either:

function handle (req, res) {
  logger(req, res)
  req.log.info('') // just log the request info
  res.log.info('doing some work') // quiet logs with only reqId
  ...
  res.log.inf('finished doing some work')
  res.end('hello world')
} 

However, I don't think either of the above approaches works if quietReqLogger is set since it suppresses req from both customReceivedMessage and req.log. Obviously I could log that req info in other ways even in quiet mode, but pino's consistent format is preferred.

Thanks and hopefully this made sense. Up way later than I should have been while reading docs and writing this. 😆

mcollina commented 3 days ago

You likely know more about that option that me know. I really regret merging that PR at this point :).

How would you recommend fixing this?