如何在 Mysql DB 中使用 Winston 记录器存储日志?

时间:2021-04-27 13:46:54

标签: mysql node.js winston express-winston

我是按照winston-mysql文件写的。我已经在 mysql db 中描述了一个用于存储日志的表,但它不起作用。下面是我的 logger.js -

const winston = require('winston');
const winston_mysql = require('winston-mysql')


var options_default = {
  host: process.env.DB_HOST,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_NAME,
  table    : 'log',
  fields   : { level: 'info', meta: 'metadata', message: 'source', timestamp: 'addDate'}
};
 
var logger = new (winston.createLogger)({
transports: [
  new winston_mysql(options_default)
]
});

module.exports = logger; 

这是我使用 winston 的控制器文件。创建客户后,它应该在数据库中创建一个日志文件。我没有收到任何错误,但它没有存储到数据库中。我在做什么错误?

const createCustomer = async(req,res,next) => {
  try{ 
       
       var id = Math.floor(Math.random()*9000000) + 10000000;
       var db = req.con;
       const data = {
             "id": id,
            "first_name": req.body.first_name,
            "last_name": req.body.last_name ,
            "username": req.body.username,
            "email": req.body.email,
            "password": req.body.password,
            "mobile": req.body.mobile,
            "address": req.body.address,
            "created_date": CurrentTime,
            
    };
    console.log(data)

    const salt = await bcrypt.genSalt(20);
    data.password = await bcrypt.hash(data.password, salt);
    var pass = data.password;
    console.log(pass)
    
    if (!req.file.filename)
    return res.status(400).send('No files were uploaded.');

    let filename = fs.readdirSync('./src/template-store/temporaryImage/')
    console.log(filename)
    var file = req.files

    let result = db.query(`INSERT INTO customer set ?`,[data],function(err,rows){
   
        if(err){
            res.json({
                success:0,
                message:"An error occurred",
                err
            })
        }
        else{
            logger.log({level:'info',message : 'customer'}) // here I am using logger
            res.json({
                status:1,
                message:"Inserted",
                data: data
            })
            //  mailer(req.body.username,req.body.email,req.body.password)
            
        }
    })
    
}

  catch(error){
       res.json({
           status:0,
           message:"An error occured",
           error:error
       })
  }
}

0 个答案:

没有答案