本地开发控制台日志输出 [object Object] 看不出实际数据

来源:1-1 课程导学

春去_秋来

2025-11-11

new winston.transports.Console({
              level: 'info',
              format: winston.format.combine(
                winston.format.timestamp(),
                winston.format.ms(),
                utilities.format.nestLike(),
              ),
            }),
	const name = 'zs'		
	this.logger.warn('test log', {
      name: name,
    });

本地开发控制台日志输出 [object Object] 看不出实际数据
[NestWinston] 9884 2025/11/11 16:38:12 WARN [[object Object]] [WEB] test func +18s
this.logger.warn(test log ${JSON.stringify({ name: name, })}); 这样可以,但是我就想用对象的方式打日志,请问下要怎么配置,谢谢

写回答

1回答

Brian

2025-11-14

https://www.npmjs.com/package/nest-winston 

https://img1.sycdn.imooc.com/szimg/dc72ed6909171e7806740228.jpg

// 简单格式化函数:只序列化消息和上下文中的对象
const serializeObjects = format((info) => {
  // 处理上下文对象(logger.log(message, context) 中的第二个参数)
  if (info.context && typeof info.context === 'object') {
    try {
      info.context = JSON.stringify(info.context, null, 2);
    } catch {
      // 如果序列化失败,保持原样
    }
  }
  return info;
});

修改console:

export const consoleTransports = new Console({
  level: 'info',
  format: format.combine(
    format.timestamp(),
    format.ms(),
    serializeObjects(),
    utilities.format.nestLike('Winston'),
  ),
});


1
0

NestJS 从拔高到精通,大型复杂业务架构落地实践

NestJS 从拔高到精通,大型复杂业务架构落地实践

163 学习 · 46 问题

查看课程