javascript - winston 记录器未序列化 mongodb.ObjectID

标签 javascript node.js mongodb mongoose winston

我想最终放弃 console.log 作为日志系统,并且一直在研究 Winston 和 Bunyan。我对 winston 有一点偏好,因为现在我想要人类可读的长条目日志,而 Bunyan 对所有额外的字段有点太啰嗦了。

winston 很棒,只是它不能正确序列化 mongo 数据库 ID。

如果我做这样的事情:

var ObjectId = require('mongodb').ObjectID;
var winston = require('winston');
winston.info(new ObjectId());

这是写入标准输出的内容:

info: _bsontype=ObjectID, id=Tø½þjÍrßgK

有时我只想将整个 Mongoose 文档转储到日志中。我不想对所有对象 ID 调用 .toString()?

有人能够解决 winston 的这个有问题的场景吗?

最佳答案

您正在寻找的很可能是格式说明符。

你可以这样做:

winston.info('%j', new ObjectId());

您可以在此处阅读有关格式说明符的信息 http://nodejs.org/api/util.html#util_util_format_format

关于javascript - winston 记录器未序列化 mongodb.ObjectID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28887304/

相关文章:

java - 蒙戈 : count number of array elements for each entry in collection

javascript - Ext JS - 在面板上创建带有动态工具提示的工具

javascript - 自动完成,在退格键和文本不可见之前不显示选项

javascript - PBEWithMD5AndTripleDES/CBC/PKCS5Padding 的 Nodejs javascript 实现

performance - javascript shell 与 pymongo 中 db.eval() 的 MongoDB 性能

javascript - 在对象数组中查找,就像在单独的集合中一样

javascript - 动态生成缩略图到 bxslider

javascript - Canvas drawImage 返回错误

node.js - 无法写入消息处理程序中的文件

node.js - Mongoose 无法连接到 Mlab