Pino日志设置trace级别后debug日志不输出,如何解决?
解决Pino日志debug级别不输出的问题
1. 检查浏览器控制台的日志过滤设置
浏览器DevTools控制台默认仅展示Info及以上级别的日志,Debug和Trace日志会被默认隐藏。你需要:
- 打开浏览器开发者工具的控制台面板
- 在日志级别过滤选项中,勾选
Debug(部分浏览器显示为Verbose),确保debug级日志能被正常展示
2. 修复自定义send函数的逻辑
你的配置中启用了browser.transmit.send自定义日志处理函数,但当前该函数为空。当Pino配置了transmit选项时,日志会优先交给send函数处理,而非直接输出到控制台。你可以修改send函数,添加对应级别的日志输出逻辑:
const send = function (level, logEvent) { // 根据日志级别调用对应console方法 switch(level) { case 'trace': console.trace(logEvent); break; case 'debug': console.debug(logEvent); break; case 'info': console.info(logEvent); break; case 'error': console.error(logEvent); break; default: console.log(logEvent); } };
3. 验证Pino级别配置的有效性
可以在代码中打印当前生效的日志级别,确认配置是否正确:
console.log('当前生效日志级别:', logger.level); console.log('当前级别对应数值:', logger.levelVal);
Pino的级别数值对应关系为:trace(10) < debug(20) < info(30) < error(50),确保你设置的级别数值小于等于20,这样debug及以上级别的日志都会被触发。
4. 统一日志级别配置位置
你在组件代码中重复设置了logger.level = "trace",建议统一在logger_config.js配置文件中定义级别,避免多处配置导致的逻辑混乱。
内容的提问来源于stack exchange,提问作者Shawn
相关产品推荐
相关产品推荐

