节点JS日志记录-Winston.Logger不是构造函数

时间:2018-06-29 07:22:37

标签: node.js logging winston

我正在使用Winston在node js应用程序中应用logger,但获取winston.Logger不是构造函数。我正在关注下面的链接

http://thisdavej.com/using-winston-a-versatile-logging-library-for-node-js/

2 个答案:

答案 0 :(得分:0)

尝试类似下面的代码,它应该可以工作(由于您在较新的版本中使用了较旧的代码,因此可能会发生):

const winston = require('winston');
require('winston-daily-rotate-file');

    function getLogger(module) {
        const transport = new winston.transports.DailyRotateFile({
            filename: './logs/log',
            datePattern: 'yyyy-MM-dd.',
            prepend: true,
            level: process.env.ENV === 'development' ? 'silly' : 'error',
        });

        // const logger = new (winston.Logger)({
        //   transports: [
        //     transport,
        //   ],
        // });

        const logger = winston.createLogger({
            transports: [transport],
        });

        return logger;
    }  

如果您看到注释的代码,则new会产生一个错误,即它不是构造函数

答案 1 :(得分:0)

由于winston.Logger已更改为winston.createLogger,因此您收到此错误。更新代码以使用.createLogger应该可以解决您的问题。

请参阅本文档https://github.com/winstonjs/winston#usage