pinojs/pino-http

customProps always logs duplicate keys

Ouverte

#216 ouverte le 5 mai 2022

 (37 commentaires) (15 réactions) (0 personne assignée)JavaScript (128 forks)github user discovery
buggood first issue

Métriques du dépôt

Stars
 (694 étoiles)
Métriques de merge PR
 (Merge moyen 1m) (2 PRs mergées en 30 j)

Description

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

Guide contributeur