@tasolutions/express-core
Version:
All libs for express
43 lines (35 loc) • 1.11 kB
JavaScript
const winston = require('winston');
const { ElasticsearchTransport } = require('winston-elasticsearch');
const { loggerInfo } = require('../config');
require('winston-mongodb');
const transports = [
new winston.transports.Console()
];
if (loggerInfo.enable === 'true') {
const esTransportOpts = {
level: 'info',
clientOpts: {
node: loggerInfo.nodeEndpoint,
auth: {
username: loggerInfo.auth_username,
password: loggerInfo.auth_password
}
},
index: loggerInfo.index
};
transports.push(new ElasticsearchTransport(esTransportOpts));
if (loggerInfo.mongodbUrl && loggerInfo.mongodbUrl.trim() !== 'false') {
const transportOptions = {
db: loggerInfo.mongodbUrl,
collection: 'change_logs',
level: 'info',
capped: true,
tryReconnect: true,
};
transports.push(new winston.transports.MongoDB(transportOptions));
}
}
const logger = winston.createLogger({
transports,
});
module.exports = { logger };