Search code examples
node.jsloggingnpmerror-logginglog4js-node

logger.debug is not a function while using log4js


I am using log4js for capturing the logs in node js. My node version is v10.16.3. When i run the code i am getting the error as logger.debug is not a function. Is there any node version compatibility? because I have used the same code before 1 year.

Please find the below code

app.js

 var log4js = require('log4js');
 var logger = require('./logger.js');
 logger.debug("Collecting logs");

logger.js

 var log4js = require('log4js');
 var fs = require('fs-extra');

 var getLogger = function (moduleName) {
 try{
    var appList=[];
    console.log('get logger');
    appList.push(moduleName);
    var logger = log4js.getLogger(moduleName);
    var appLog = './logs/app.log';
    fs.ensureFileSync(appLog);

    log4js.configure({
       appenders: {
           console: { type: 'console' },
           filelog: { type: 'file', filename: appLog,  pattern: '-yyyy-MM-dd-hh-mm-ss', category: appList }
       },
      categories: {
           file: { appenders:['filelog'],level:'error'},
           another: {appenders: ['console'],level: 'trace'},
           default: {appenders: ['console','filelog'],level: 'trace'}
      }
    });

  }catch(err){
    console.log(err);
  }
  return logger;
};
exports.getLogger = getLogger;

Kindly help me in resolving the issue. Thank you.


Solution

  • Your logger.js exports exports.getLogger = getLogger. Therefore, you have to do:

    var logger = require('./logger.js').getLogger();
    logger.debug("Collecting logs");