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
});