How to use Winston in several modules?

前端 未结 11 1556
隐瞒了意图╮
隐瞒了意图╮ 2020-12-22 23:40

I have several modules - let\'s say server.js, module1.js,...,moduleN.js.

I would like define the log file in my server.js:

winston.add(winston.trans         


        
11条回答
  •  北海茫月
    2020-12-23 00:00

    if you want to make the logger a global variable- you have to do specifically by assign it to the global variable like so

    logger.js

    var winston = require('winston')
    
    var winston = winston.createLogger({
    transports: [
      new (winston.transports.Console)(),
      new (winston.transports.File)({
        filename: './logs/logger.log'
      })
    ]
    });
    module.exports=winston;
    

    app.js

    let logger  = require('./logger')
    global.__logger = logger
    

    someController.js

    __logger.info('created log successfully')
    

    Note: it's good practice to assign a prefix for every global variable so you will know that is a global one. i'm using __ as prefix (double low dash)

提交回复
热议问题