logger.debug 在使用 log4js 时不是函数

logger.debug is not a function while using log4js

我正在使用 log4js 捕获节点 js 中的日志。我的节点版本是v10.16.3。当我 运行 代码时,我收到错误消息,因为 logger.debug 不是函数。是否有任何节点版本兼容性?因为我在 1 年前使用过相同的代码。

请找到下面的代码

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;

请帮助我解决问题。 谢谢。

您的 logger.js 导出 exports.getLogger = getLogger。 因此,你必须做:

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