25

Winston を読んでいじっていると、なぜロギング レベルがそのままの順序で並べられているのか、そしてトランスポートがそのように動作するのはなぜなのか (まあ、少なくともコンソール レベルでは) 困惑しています。Winston でのロギングがこのように機能する理由を、実際のユースケースの例を使用して、誰かがおそらく徹底的に説明していただければ幸いです。

たとえば、ロガーを次のようにセットアップします。

var logger = new (winston.Logger)({
  levels: winston.config.syslog.levels,
  colors: winston.config.syslog.colors,
  level: "debug",  // I'm not sure what this option even does here???
  transports: [
    new (winston.transports.Console)({
      colorize: true,
      handleExceptions: true,
      json: false,
      level: "debug"
    })
  ]
});

したがって、私が行うlogger.debug("Test");と、ログdebug: Testに記録されます。しかしlogger.info("Test");、そうすると、何も起こりません。

私が抱えている問題は、メッセージ以外のすべてをコンソール 記録したい場合debug、どうすればよいですか? ...またはメッセージでもdebug 、他のすべてをログに記録しますか? info

Java の世界から来て、標準のロガーを使用しているため、ロガーが逆方向に動作するdebugよりも「きめ細かい」ものであることに慣れています。warnたとえば、ログ レベルを に設定すると、 (または何か)info以外のすべてがログに記録されます。debug

errorまた、ロガーにwarninginfoメッセージのみをログに記録させたい場合、 Winston ではどうすればよいでしょうか?

* 編集 *

どうやら、このレベルの順序は に固有のものwinston.config.syslog.levelsです。したがって、残っている唯一の質問は、「どうにかして、トランスポートを非常に特定のログ レベルのみに制限することは可能ですか?」

4

2 に答える 2

10

ドキュメントに従って、独自のログ レベル (0 が最低) を設定し、それに色を関連付けることができます。ここで、最低レベルをログに記録したくない場合は、levelプロパティを対応するレベルに設定するだけです。デフォルトでは、コンソール ロガーのレベルは次のように設定されています。info

例を次に示します。

logger = new (winston.Logger)({
  levels: {
    'info': 0,
    'ok': 1,
    'error': 2
  }
  transports: [
    new (winston.transports.ConsoleTransport)(silent: options.silent, level: 'ok')
  ]
});
于 2014-01-05T07:27:11.583 に答える