On my next js app, I'm trying to use pino (v 8.7.0) where I want the client logs to return levels with labels instead of numbers. Based on the pino documentation, I've added a formatter. However, I'm still getting numbers after I tried the following:
pino-logger-service.ts
import { default as Pino } from 'pino';
export const initLogger = () => {
const pinoLogger = Pino( {
serialize: true,
formatters: {
level (label) {
return { level: label }
}
},
browser: {
write: (o: any) => {
console.log(`${JSON.stringify(o)}`);
}
}
});
return pinoLogger;
};
_app.tsx
import { initLogger } from 'src/services/pino-logger-service';
const logger = initLogger();
logger.info({ "name": "test"}); // Outputs -> {"time":1666934438737,"level":30,"name":"test"}
How can I get the label (in this case 'info') to appear for the level?