zebb-logger
Version:
LoggerSDK for Microservices with multiple adapters eg: Pino, Winston, Bunyan with support for [Mapped Diagnostics Context](http://logback.qos.ch/manual/mdc.html).
59 lines (44 loc) • 1.55 kB
JavaScript
process.env.SERVICE = 'Payment';
process.env.LOG_ADAPTER = 'pino';
process.env.LOG_LEVEL = 'debug';
process.env.LOG_PATH = 'logs';
process.env.LOG_FILE = 'payment.log';
process.env.LOG_ONLY_STDOUT = 'false';
const { Logger } = require('../logger');
const UserController = require('./controller');
function configureLogger() {
const logOptions = {
level: process.env.LOG_LEVEL,
logPath: process.env.LOG_PATH,
logFile: process.env.LOG_FILE,
};
Logger.setLoggerOptions(logOptions);
Logger.addAdapter(process.env.LOG_ADAPTER, Logger.setAdapter(process.env.LOG_ADAPTER));
}
configureLogger();
const logger = new Logger(__filename);
// logger.log('debug', 'starting to listen for new job on queue: payments');
logger.fatal('SERVER CRASHED----------', new Error('fatal exception'));
const Job = require('./job');
let JOB_ID = 9900;
let USER_ID = 9900;
const getJob = () => ({
type: 'payment',
gateway: 'mobikwik',
transaction_id: `T${Date.now()}`,
id: ++JOB_ID,
amount: Math.floor(Math.random(1, 10000) * 10e3),
user_id: ++USER_ID,
});
setInterval(() => {
new Job(getJob()).processJob();
}, 2000);
logger.info('Initilazling user controller');
logger.info('do something');
logger.info('Method: POST URL: /api/v1/users', { requestId: 123 }, { c1: 'v1' });
const user = new UserController();
user.doSomething();
setInterval(() => {
logger.error('Payment Failed ', new Error('GatewayError: Failed to process payment transaction'));
}, 2000);
logger.log('info', 'Checking log information', { name: 'kailash' })