How to use Winston in several modules?

前端 未结 11 1557
隐瞒了意图╮
隐瞒了意图╮ 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:26

    Just create logger.js and put

    const winston = require('winston');
    
    const logger = winston.createLogger({
      level: 'info',
      format: winston.format.combine(
        winston.format.colorize(),
        winston.format.simple()
      ),
      transports: [
        new winston.transports.Console()
      ]
    });
    
    module.exports = logger
    

    Then you can require and use it anywhere, since logger is now singleton.

    const logger = require('./utils/logger');
    logger.info('Hello!');
    

    This even gives you an option to swap logging library if needed. The accepted answer is totally wrong and one step closer to spaghetti code.

提交回复
热议问题