ウィンストンを読んでいじくって、なぜログレベルがそのままの順序で並んでいるのか、なぜトランスポートがそのように動作するのか(少なくとも、コンソールはそうです)ことに戸惑っています。誰かが、おそらく完全にさえ、実際の使用例を使って、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");
を実行しても、何も起こりません。
私が抱えている問題は、コンソールにログを記録したい場合eveverythingbutdebug
メッセージ、私は何をしますか? ...またはdebug
およびinfo
メッセージでさえ、他のすべてをログに記録しますか?
Java=世界から、標準のロガーを使用して、debug
をwarn
よりも「細かく」設定することに慣れており、ロガーは逆方向に動作しました。たとえば、ログレベルをinfo
に設定すると、debug
(または何か)以外のすべてがログに記録されました。
また、ロガーにerror
、warning
、およびinfo
メッセージのみをログに記録させたい場合、Winstonでそれをどのように実行しますか?
どうやら、このレベルの順序は_winston.config.syslog.levels
_に固有です。したがって、残っている唯一の質問は、「どういうわけか、トランスポートを特定のロギングレベルのみに制限することは可能ですか?」です。
documentation のように、独自のログレベルを設定できます。0が最低で、色を関連付けることができます。最下位レベルをログに記録したくない場合は、level
プロパティを対応するレベルに設定するだけです。デフォルトでは、コンソールロガーのレベルはinfo
に設定されています
だから、ここに例があります:
logger = new (winston.Logger)({
levels: {
'info': 0,
'ok': 1,
'error': 2
}
transports: [
new (winston.transports.ConsoleTransport)(silent: options.silent, level: 'ok')
]
});
var logger = new (winston.Logger)({
levels: {
'info': 0,
'ok': 1,
'error': 2
},
colors: {
'info': 'red',
'ok': 'green',
'error': 'yellow'
},
transports: [
new (winston.transports.Console)({level:'info',colorize: true})
]
});
logger.log('info',"This is info level");
logger.info("This is info level");