Default sequelize logger is simply really hard to read and understand:
So with a magic of regular expressions and one bier basic MySQL syntax highlight were created:
- Install via npm
npm install sequelize-log-syntax-colors
- Use in code
// require logger
var sequelizeLogger = require('sequelize-log-syntax-colors');
// require config
var config = require(path.join(__dirname, '/../config/config.json'))[env];
// pass a logger function to config
config.logging = sequelizeLogger;
// initialize sequlize
const sequelize = new Sequelize(config.database, config.username, config.password, assign(config, {
logging : function(text) { console.log(colors(text)); }
}));
// OR use it with Winston
const log = require('./my-loggers');
const sequelize = new Sequelize(config.database, config.username, config.password, assign(config, {
logging : log.database.info
}));
// setting up winstons loggers
const winston = require('winston');
const common = require('../../node_modules/winston/lib/winston/common');
const colors = require('sequelize-log-syntax-colors');
winston.loggers.add('database', {
console: {
level: 'info',
colorize: true,
label: 'sequelize',
formatter: function(obj) {
var colorfull = {
colorize: true,
label: obj.label,
level: obj.level,
message: colors(obj.message)
}
return common.log(colorfull);
}
},
...
});
module.exports = winston.loggers.loggers;
This is still very basic but serves me well. Commitment much appreciated.