pinojs/pino-http

customProps always logs duplicate keys

Aperta

#216 aperta il 5 mag 2022

 (37 commenti) (15 reazioni) (0 assegnatari)JavaScript (128 fork)github user discovery
buggood first issue

Metriche repository

Star
 (694 stelle)
Metriche merge PR
 (Merge medio 1m) (2 PR mergiate in 30 g)

Descrizione

customProps always logs duplicate keys.

I am working with google cloud logging and it doesn't play nicely with the duplicate keys:

    customProps(req) {
      // adds a custom object to all http logs that stackdriver
      // uses to make logs more informative and visible at a glance
      // see: https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#httprequest
      // for the details of the structured log messages
      return {
        httpRequest: {
          requestMethod: req.method,
          requestUrl: req.url,
          userAgent: req.headers['user-agent'],
          remoteIp:
            req.headers['x-forwarded-for']?.split(',').shift() ||
            req.socket?.remoteAddress,
        },
      };
    },

For instance: custom props cause the following log: "{ "httpRequest": {"method":"GET"},"httpRequest": {"method":"GET"}}"

ends up in stackdriver/google cloud logging looking like: {httpRequest: { method: 'GETGET' }}

related to https://github.com/pinojs/pino-http/pull/197

Guida contributor