You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中Pino Logger输出未显示配置的完整时间戳问题

解决Pino + pino-pretty时间戳缺失日期的问题

问题原因

你的配置中同时设置了translateTimestamp和timestamp参数,导致pino-pretty的时间戳处理逻辑冲突:timestamp会让pino-pretty自行生成仅含时分秒的时间戳,而非转换Pino原生输出的完整time字段;同时transport选项中重复设置的levels也可能干扰解析流程。

修复步骤

  1. 移除冲突的timestamp选项:保留translateTimestamp来转换Pino生成的完整时间字段,确保日期部分被正确解析。
  2. 删除transport选项中重复的levels配置:Pino的自定义级别会自动传递给pino-pretty,无需重复设置。
  3. 修正时间戳格式的占位符:月份需使用大写MM(小写mm代表分钟),保证格式解析准确。

修改后的配置代码:

const levels = {
  http: 10,
  debug: 20,
  info: 30,
  warn: 40,
  error: 50,
  fatal: 60,
};

const logger = pino({
  level: 'info',
  useOnlyCustomLevels: true,
  customLevels: levels,
  transport: {
    target: 'pino-pretty',
    options: {
      colorize: true,
      colorizeObjects: true,
      translateTimestamp: "SYS:yyyy-MM-dd HH:mm:ss.l",
      minimumLevel: 'info',
      levelFirst: true,
      ignore: 'pid,hostname',
    }
  }
})

验证效果

调用logger.info('This is a log message')后,输出将包含完整的日期和时间:

INFO [2024-05-20 18:06:00.159]: This is a log message

内容的提问来源于stack exchange,提问作者BreenDeen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 07:07:28