0

カスタムレベルのロガーを作成して、Winston (NodeJS) の使用方法を理解しようとしています。

ロガー.js

  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

ここで何が間違っていますか?

4

1 に答える 1

2

すぐに思いつくのは、includes.js を経由するのではなく、app.js に直接 logger.js をインクルードすることです。

もっとお手伝いしたいのですが、それらの場所にファイルがあり、あなたが言ったこと以外に何もする必要はありません。あなたのアプリはまったく動作しないはずです.

于 2012-11-08T23:14:27.727 に答える