I am using express-mongoose for my backend and winston as my logger. The problem is that winston is only logging the info messages not errors The logs in server.log 
Error messages only get logged on console but neither in the file nor mongodb 
the logger code
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())
})]
});
I created an error by not defining the jwt. the code
const logger = require("./utils/logger")
if (!config.get("jwtPrivateKey")){
logger.error("FATAL ERROR!! JWT is not defined!")
process.exit(1)
}
from Winston is only logging .info errors and doesn't log error to file or mongodb
No comments:
Post a Comment