simple nodejs node logger log create combine node.js winston morgan

node.js - nodejs - TypeError: winston.Logger no es un constructor con winston y morgan



winston log npm (1)

Intenté con Winston para el logger . Utilicé en un proyecto. Está funcionando bien cuando copio, pego el código al proyecto existente actual y me enfrento a un problema como TypeError: winston.Logger is not a constructor

let logger = new (winston.Logger) ({^

TypeError: winston.Logger no es un constructor

Guíeme, por qué este error y qué debo hacer para resolver este problema.

"morgan": "^ 1.9.0", "winston": "^ 3.0.0"

A continuación está mi código en el archivo logger.js .

var appRoot = require(''app-root-path''); var winston = require(''winston''); var options = { file: { level: ''info'', name: ''file.info'', filename: `${appRoot}/logs/app.log`, handleExceptions: true, json: true, maxsize: 5242880, // 5MB maxFiles: 100, colorize: true, }, errorFile: { level: ''error'', name: ''file.error'', filename: `${appRoot}/logs/error.log`, handleExceptions: true, json: true, maxsize: 5242880, // 5MB maxFiles: 100, colorize: true, }, console: { level: ''debug'', handleExceptions: true, json: false, colorize: true, }, }; // your centralized logger object let logger = new (winston.Logger)({ transports: [ new (winston.transports.Console)(options.console), new (winston.transports.File)(options.errorFile), new (winston.transports.File)(options.file) ], exitOnError: false, // do not exit on handled exceptions });


Como mencionó, está usando 3.0.0 , no puede usar winston.Logger , puede consultar el código de la biblioteca ( https://github.com/winstonjs/winston/blob/master/lib/winston.js#L178 )

Necesita hacer una pequeña actualización en su código, use winston.createLogger lugar de new (winston.Logger)

// your centralized logger object let logger = winston.createLogger({ transports: [ new (winston.transports.Console)(options.console), new (winston.transports.File)(options.errorFile), new (winston.transports.File)(options.file) ], exitOnError: false, // do not exit on handled exceptions });