この記事では主に Express の高度な log4js の実践的な入門ガイドを紹介し、参考として提供します。
オンライン プロジェクトの場合、ログは非常に重要な部分です。 Log4js は頻繁に使用されるログ コンポーネントであり、Express と一緒に使用されることがよくあります。この記事は、log4js の使用法とそれを Express と統合する方法を説明するための入門的な例から始まります。
入門例
出力されるログは次のとおりで、ログの印刷時間、ログレベル、ログカテゴリ、ログの内容が含まれます。
// started.js var log4js = require('log4js'); var logger = log4js.getLogger(); logger.debug('hello world'); // 输出: // [2017-02-28 21:28:22.853] [DEBUG] [default] - hello world
ログレベル
logger.setLevel('INFO'); は、出力する最低レベルのログが INFO であることを意味します。つまり、logger など、INFO よりも低いレベルのインターフェイスを呼び出します。 debug()、ログ 出力されません。
var log4js = require('log4js'); var logger = log4js.getLogger(); logger.setLevel('INFO'); logger.debug('level: debug'); logger.info('level: info'); logger.error('level: error'); // 输出如下: // [2017-02-28 21:50:45.372] [INFO] [default] - level: info // [2017-02-28 21:50:45.376] [ERROR] [default] - level: error
ログカテゴリ
レベルに加えて、ログを分類することもできます。以下に示すように、log4js.getLogger(category)でログ出力の場所を指定します
var log4js = require('log4js'); var alogger = log4js.getLogger('category-a'); var blogger = log4js.getLogger('category-b'); alogger.info('hello'); blogger.info('hello'); // 输出如下: // [2017-02-28 22:36:57.570] [INFO] category-a - hello // [2017-02-28 22:36:57.574] [INFO] category-b - hello
appenders
appendersは、ログ出力の場所を指定し、複数のログを分類できます。同時に設定する場合は、カテゴリを使用して区別します。たとえば、log4js.getLogger('info') は、タイプが dateFile である構成を適用します。
タイプ console の設定では category が宣言されていないため、すべてのログがコンソールに出力されることがわかります。
var log4js = require('log4js'); log4js.configure({ appenders: [ { type: 'console'}, { type: 'dateFile', filename: './logs/info.log', category: 'info' } ] }); var logger = log4js.getLogger('info'); logger.setLevel('INFO'); logger.trace('trace'); logger.debug('debug'); logger.info('info'); // 输出如下: // [2017-02-28 22:51:30.723] [INFO] info - info
express application
比較的単純な例は次のとおりで、すべてのログがコンソールに出力されます。
var express = require('express'); var log4js = require('log4js'); var app = express(); log4js.configure({ appenders: [ { type: 'console', category: 'app' } ] }); var logger = log4js.getLogger('app'); logger.setLevel('INFO'); // 级别 > INFO 的日志才会被打印 app.use( log4js.connectLogger(logger) ); app.use(function(req, res, next){ res.send('ok'); }); app.listen(3000);
http://127.0.0.1:3000 にアクセスすると、印刷ログは次のとおりです
[2017-03-01 00:28:29.301] [INFO] app - ::ffff:127.0.0.1 - - "GET / HTTP/ 1.1" 304 - "" "Mozilla/5.0 (Macintosh; Intel Mac OS レベル。
// 级别 > INFO 的日志才会被打印 logger.setLevel('INFO'); // 日志的级别是 WARN app.use( log4js.connectLogger(logger, {level: 'WARN'}) );
宣言されたログ レベルが logger.setLevel(level) で定義されたレベルより低い場合、次の例のようにログは出力されないことに注意してください。
rreee以上が皆さんのためにまとめたもので、今後皆さんのお役に立てれば幸いです。
関連記事:
Vue が配列またはオブジェクトの変更を検出できない問題を解決するにはどうすればよいですか? Vue の検出シーケンスにオブジェクトの新しい属性を追加する方法は何ですか? JSで乱数を生成する方法(詳細なチュートリアル)以上がExpressでのlog4jsの実際の使い方についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。