0

How can I manually set the level of a log when using Pino?

Here's some sample code:

  const baseLogger = pino(loggerOptions);
  const activityLogger = baseLogger.child({ name: "activity" });
  const workerLogger = baseLogger.child({ name: "worker" });

  Runtime.install({
    logger: new DefaultLogger("INFO", (entry) => {
        workerLogger.error({
          level: entry.level.toLowerCase(),
          message: entry.message,
          timestamp: Number(entry.timestampNanos / BigInt(1000000)),
          ...entry.meta,
        })
      }
    )
  })

which produces logs like the following:

{"level":"error","time":1674573001943,"pid":95258,"name":"worker","level":"info","message":"Workflow bundle created","timestamp":1674573001943,"size":"0.70MB"}

Note that level appears twice. Ideally I'd like to invoke workerLogger.log and manually pass a level field but it seems pino does not make this easy. Is there a way to log with pino but not use one of the default level functions like .info, .debug, etc...?

Paymahn Moghadasian
  • 9,301
  • 13
  • 56
  • 94

0 Answers0