如何使用pino日志库将打印的USERLVL日志等级名修改为QUERY
问题原因
pino的格式化模块默认不会自动读取根配置中的customLevels做等级名称映射,识别不到35等级对应的自定义名称时,就会输出默认的USERLVL标识。
解决方案
你需要把自定义等级同步配置到格式化器的参数中:
如果你使用的是pino v7及更早版本
修改后的代码如下:
const logger = pino({ customLevels: { query: 35 }, prettyPrint: { translateTime: true, // 新增和根配置一致的自定义等级映射 customLevels: { query: 35 } } }); logger.query('hi');
如果你使用的是pino v8及以上版本
prettyPrint配置已废弃,需要改用transport配置,写法如下:
const logger = pino({ customLevels: { query: 35 }, transport: { target: 'pino-pretty', options: { translateTime: true, customLevels: { query: 35 }, // 如果需要等级名显示全大写,新增以下配置 formatters: { level: (label) => { return { level: label.toUpperCase() } } } } } });
修改完成后再次调用logger.query('hi'),输出内容就会显示QUERY标识替换原来的USERLVL。
内容的提问来源于stack exchange,提问作者user12562761
相关产品推荐
相关产品推荐

