如何将续集日志写入文件而不是控制台?

imv*_*_90 4 node.js sequelize.js

我想将续集日志写入文件而不是控制台。所有 sequelize 日志都被写入控制台,这是默认的。

提前致谢。

dav*_*rad 9

options.logging文档中查看。默认值为

options.logging = console.log
Run Code Online (Sandbox Code Playgroud)

这意味着所有日志记录都传递给console.log(). 因此,只需将日志记录更改为将消息附加到日志/文本文件的函数。例子

var sequelize = new Sequelize('database', 'username', 'password', {
  logging: myLogFunc
}); 

var myLogFunc = function(msg) {
}
Run Code Online (Sandbox Code Playgroud)

winston是一个很好的用于管理日志的 nodejs 包 -> https://github.com/winstonjs/winston


Rou*_*dre 7

这是肮脏的方式(仅在本地环境中使用):

import fs = require('fs');

const logStream = fs.createWriteStream('./sql.log', {'flags': 'a'});

const sequelize = new Sequelize('database', 'username', 'password', {
  logging: msg => logStream.write(msg),
}); 
Run Code Online (Sandbox Code Playgroud)