Estoy usando express-mongoose para mi backend y winston como mi registrador. El problema es que winston solo registra los mensajes de información, no los errores. Los registros en server.log 
Los mensajes de error solo se registran en la consola, pero no en el archivo ni en mongodb 
el código del registrador
const { createLogger, format, transports } = require('winston'); // Import mongodb require('winston-mongodb'); module.exports = createLogger({ transports:[ //Console transport new transports.Console(), // File transport new transports.File({ filename: 'logs/server.log', format:format.combine( format.timestamp({format: 'MMM-DD-YYYY HH:mm:ss'}), format.align(), format.printf(info => `${info.level}: ${[info.timestamp]}: ${info.message}`), )}), // MongoDB transport new transports.MongoDB({ level: 'error', //mongo database connection link db : 'mongodb://localhost/logs', options: { useUnifiedTopology: true }, // A collection to save json formatted logs collection: 'edushare_logs', format: format.combine( format.timestamp(), // Convert logs to a json format format.json()) })] });Creé un error al no definir el jwt. el código
const logger = require("./utils/logger") if (!config.get("jwtPrivateKey")){ logger.error("FATAL ERROR!! JWT is not defined!") process.exit(1) }El "transporte de la consola" de winston es síncrono, sin embargo, los procesos para escribir en mongo o archivo son asíncronos. En este caso, puede utilizar la devolución de llamada de la función winston. Prueba esto:
const logger = require("./utils/logger") if (!config.get("jwtPrivateKey")) { logger.error("FATAL ERROR!! JWT is not defined!", () => { exit(1); }); }