I have the follow configuration:
var winston = require(\'winston\');
var Mail = require(\'winston-mail\').Mail;
var logger = new (winston.Logger)({
transports
The transports
configuration is just a plain old Array. So we can use all the usual tricks on it. In this case, you want a conditional push()
.
const winston = require('winston');
const transports = [
new winston.transports.Console({
level : 'info',
colorize : true
}),
new winston.transports.File({
level : 'info',
filename : './logs/logs.log'
})
];
if (process.env.NODE_ENV === 'production') {
const Mail = require('winston-mail').Mail;
transports.push(new Mail({
to : 'xxxxxx@xxxxxx.xx',
from : 'winston@xxxxx.xx',
subject : 'Errors occurred',
level : 'error',
host : 'smtp.xxxxx.xx',
username : 'xxxx@xxxx.xx',
password : 'xxxxx',
port : 1234
}));
}
const logger = new winston.Logger({
transports
});
This code should be usable as is on Node.js >= 4, after filling in the mail configuration placeholders.
The same principle can be applied to the exceptionHandlers
.