【问题标题】:Log a mongoose db entry using winston - node js使用 winston - node js 记录 mongoose db 条目
【发布时间】:2016-12-18 03:04:19
【问题描述】:

我有一个架构:

var nameSchema = new Schema({
  name: String,
  surname: String,
  word: String
})
var nameSchema = mongoose.model('nameSchema', nameSchema)

每次运行代码时都会更新我的 dbs 字段。这是我的 dbs 条目的样子:

{ "_id" : ObjectId("xxx"), "name" : "Tom", "surname" : "Qwerty", "word" : "secret", "__v" : 0 }

现在一旦成功保存了这个 dbs 条目,我也想制作一个 winston 日志,将这个 dbs 信息传递给日志。所以它看起来像这样:

 var logger = new (winston.Logger)({
    transports: [
      new (winston.transports.File)({
        filename: './logs/example.log',
        level: 'info',
        timestamp: true,
        event: 'MY DBS ENTRY'   
      })
    ]
  });

我的想法是围绕这些线......

logger.log('info', "db.?? -NOT SURE");

所以日志文件看起来像这样:

{"level":"info","event":"{"name" : "Tom", "surname" : "Qwerty", "word" : "secret"}","timestamp":"2016-08-11T10:44:49.527Z"}

感谢任何帮助或提示

【问题讨论】:

  • 您如何插入或更新您的数据库?你能发布一些cde吗?

标签: node.js mongodb mongoose winston


【解决方案1】:

假设您要插入数据库。保存文档时,您将可以访问当前保存的文档。因此,在回调中,您可以使用该文档来创建您的winston log

var user = new nameSchema();
user.name = "tom";
user.surname = "Qwerty";
user.word = "secret";

user.save(function(err,user)
{
    if(!err)
    {
        //use the currently inserted document and log it in your logger.
        logger.log('info',user);
        // OR:
        // if you just want specific information to log in logger, cerate another variable for it.
        var temp = {};
        temp.name= user.name;
        temp.surname = user.surname;
        temp.word = user.word; 
        logger.log('info',temp);
    }

});

【讨论】:

  • 嗯,好主意,我认为这也适用于 findOneAndUpdate?
猜你喜欢
  • 1970-01-01
  • 2014-11-04
  • 2019-11-16
  • 2017-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-14
  • 2015-03-10
相关资源
最近更新 更多