Skip to content

Pino-pretty doesn't work if timestamp is changed #496

@augusto-dmh

Description

@augusto-dmh

I was trying to understand why, even with all due properties set and the script ok for running logs formatted with pino-pretty, why the logs were being this way - unformatted:

{"level":"ERROR"",timestamp":"2024-03-12T12:47:54.530Z","status":401,"message":"'authorization' header is required."

After checking if i was doing all the config stuff correctly, i tested taking off all configuration i've put on my logger, then i noticed that with timestamps changed like below, the prettier wouldn't work:

const logger = pino(
  {
    base: undefined,
    level: process.env.LOG_LEVEL,
    redact: {
      paths: ["email", "password"],
      censor: "[RESTRICTED]",
    },
    timestamp: () => `",timestamp":"${new Date(Date.now()).toISOString()}"`,
    formatters: {
      level: (label) => ({ level: label.toUpperCase() }),
    },
  },
  transport,
);

After removing the line with customized timestamp, the log was as should be:

[09:45:33.188] �[31mERROR�[39m:
status: 401
message: "'authorization' header is required."

So the pino-pretty package apparently doesnt work with a customized timestamp.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions