node.js - logger.debug 在使用 log4js 时不是一个函数
问题描述
我正在使用 log4js 来捕获节点 js 中的日志。我的节点版本是v10.16.3。当我运行代码时,我收到错误,因为 logger.debug 不是函数。是否有任何节点版本兼容性?因为我在 1 年前使用过相同的代码。
请找到以下代码
应用程序.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");
推荐阅读
- machine-learning - XGBoost:最小化连续线性特征的影响,而不是分类特征
- c# - 无法在 ORACLE 存储过程中提取 XML 节点值
- python - 使用发布请求python获取购物车项目
- firebase - 非用户数据的firebase实时数据库安全规则
- html - AngularJS在第一次初始点击后重复自动点击按钮
- javascript - 如何根据最高 z-index 获取元素属性
- python - 在返回差异天数的 Dataframe 中减去两个日期
- python - Python pandas 在输出 csv 文件中保留十进制逗号
- android - 直接回复按钮不发送广播意图
- python - Python有时无法将字符串转换为浮点数