Pino-pretty doesn't work if timestamp is changed
augusto-dmh opened this issue · comments
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.
Thanks for reporting! Would you like to send a Pull Request to address this issue? Remember to add unit tests.
You're welcome! Well, at the moment i haven't studied yet about unit tests, but sooner or later i will and i'll come back here!