Expressでのlog4jsの実際の使い方について

亚连
リリース: 2018-06-06 11:27:07
オリジナル
3297 人が閲覧しました

この記事では主に 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート