Node.js 为什么我会得到';超过最大调用堆栈大小';尝试创建自定义记录器时出错(Winston/NodeJS)
我试图通过创建具有自定义级别的记录器来理解如何使用Winston(NodeJS) logger.jsNode.js 为什么我会得到';超过最大调用堆栈大小';尝试创建自定义记录器时出错(Winston/NodeJS),node.js,stack-overflow,winston,Node.js,Stack Overflow,Winston,我试图通过创建具有自定义级别的记录器来理解如何使用Winston(NodeJS) logger.js var winston = require('winston'); var custom = { levels: { debug: 0, log : 1, info : 2, ok : 3, warn : 4, cry : 5, fail : 6 }, colors: {
var winston = require('winston');
var custom = {
levels: {
debug: 0,
log : 1,
info : 2,
ok : 3,
warn : 4,
cry : 5,
fail : 6
},
colors: {
debug: 'grey',
log : 'white',
info : 'cyan',
ok : 'green',
yay : 'blue',
warn : 'yellow',
cry : 'magenta',
fail : 'red'
}
};
var customLogger = new (winston.Logger)({
transports: [
new (winston.transports.Console)({ colorize:true, prettyPrint: true, level: 'fail', timestamp:false })
],
levels:custom.levels, colors:custom.colors
});
module.exports = customLogger;
//在includes.js中
var logger = require('./lib/logger.js');
exports.logger = logger;
//在app.js中
var logger = require('includes').logger
logger.cry("Wah Wah Wah");
但每次我尝试包含自定义记录器并使用它时,我都会得到:
RangeError: Maximum call stack size exceeded
我做错了什么?我马上想到的一件事是直接在app.js中包含logger.js,而不是通过includes.js
我很想提供更多帮助,但是对于那些位置的文件,除了你说的以外,没有其他事情可以做。据我所知,你的应用程序根本不应该工作。你如何要求你的app.js中的记录器?logger=require('includes')。logger各种文件在哪里?我假设是./app.js和./lib/logger.js,但where is includes.js?/app.js/node_modules/common/lib/logger.js/node_modules/common/includes.js有一个类似的温斯顿问题:感谢您的关注。你认为这是包含文件路径的方式吗?在我调用log之前,它一直工作正常。*然后我就得到了错误。在我通过谷歌发现的一些问题中,他们说当你有一个无限递归调用时,就会发生这个堆栈错误-_-