我想将sequelize日志写入文件而不是控制台。所有续集日志都写入控制台,这是默认值。
提前致谢。
答案 0 :(得分:4)
在docs中查看options.logging
。默认值为
options.logging = console.log
表示所有日志记录都传递给console.log()
。因此,只需将日志记录更改为将消息附加到日志/文本文件的函数。实施例
var sequelize = new Sequelize('database', 'username', 'password', {
logging: myLogFunc
});
var myLogFunc = function(msg) {
}
winston 是一个很好的nodejs软件包,用于管理日志 - >的 https://github.com/winstonjs/winston 强>
答案 1 :(得分:0)
这是肮脏的方式(仅在本地环境中使用):
import fs = require('fs');
const logStream = fs.createWriteStream('./sql.log', {'flags': 'a'});
const sequelize = new Sequelize('database', 'username', 'password', {
logging: msg => logStream.write(msg),
});
答案 2 :(得分:0)
const sequelize = new Sequelize('sqlite::memory:', {
// Choose one of the logging options
logging: console.log, // Default, displays the first parameter of the log function call
logging: (...msg) => console.log(msg), // Displays all log function call parameters
logging: false, // Disables logging
logging: msg => logger.debug(msg), // Use custom logger (e.g. Winston or Bunyan), displays the first parameter
logging: logger.debug.bind(logger) // Alternative way to use custom logger, displays all messages
});
使用我用过的任何一个记录器
logging: msg => logger.log('info',msg)
这对我有用