nodejs logs 4 js使用詳細

4342 ワード

この文章はロゴ4 js v 4.3に対して書かれています。
この文章は自分がロゴ4 jsの技術点を使って簡単に記録します。いくつかの技術点が使われていないか、または全部書いていないので、後で使う時に更新します。
まず大体のロゴ4 jsの基本的な使い方をまとめて、configure()の方法でログ出力を設定し、getlogger()の方法でloggerオブジェクトを取得し、それぞれのレベルのログをログオブジェクトで印刷します。その中で複雑なのがconfigure()の方法の中の配置対象のapendersとcategoriesです。この二つの対象を重点的に説明します。
インストール

npm install --save log4js
ログレベルlevel
log 4 jsは以下のレベルに分けられています。レベルの順も以下のように配列されています。loggerは、loggerのオブジェクトに設定されているlevel以上のログを印刷するだけです。
  • トレイ
  • debug
  • info
  • warn
  • error
  • fatal
  • 簡単な使い方
    
    var log4js = require('log4js');
    var logger = log4js.getLogger();
    logger.level = 'debug';
    logger.debug("Some debug messages");
    
    get Logger()メソッドは一つのloggerオブジェクトに戻ります。ログを記録するには、必ずloggerオブジェクトを使用して、loggerオブジェクトのlevelをdebugに設定してください。(デフォルトはOFFです。ログは出力されません。)
    nodeの環境で上のコードを実行した後、コンソールで対応するログ情報をプリントアウトしましたが、これは私が欲しいのとは全然違って、私が欲しいのは自分の考えによってログを分類して検索しやすく統計したいです。次に私たちは日記の分類方法を見ます。
    configre方法
    configureメソッドを呼び出すことによって、私たちがログを分類管理する目的が実現されます。この方法のパラメータは、文字列またはobject文字列パラメータとして構成をロードするためのファイル名として扱うことができ、プロファイルはjsonファイルであり、構成オブジェクトを直接configureに伝えることもできる。
    オブジェクトの設定
    今回は配置対象の中で最もよく使われているアプリとcategoriesだけを紹介します。一部の属性はまだ使われていません。
    簡単にこの二つの属性をまとめて、まず一つの概念的な認識があります。彼らはそれぞれ何をしていますか?
    apendersは主にどのように出力するかを定義するために使用されます。どこに出力されますか?
    categoriesはログ出力のルールを定義して呼び出しする前に定義されたapendersで出力します。
    簡単な例を書いて理解しやすいです。
    
    const log4js = require('log4js');
    log4js.configure({
     appenders: {
      out: { type: 'stdout' },
      app: { type: 'file', filename: 'application.log' }
     },
     categories: {
      default: { appenders: [ 'out', 'app' ], level: 'debug' }
     }
    });
    
    var logger = log4js.getLogger();
    logger.debug("Some debug messages");
    
    
    実行中のコードは、プロジェクトディレクトリの下でappication.logsファイルを作成します。同時にログをコンソールとappication.logsファイルに入力します。
    上で二つのアプリを定義しました。一つはstdoutに出力します。一つはfileに出力します。
    また、categoriesでルールを定義し、apenderで定義された出力を呼び出し、出力レベルはdebugとなります。
    apenders
    apendersはmapで、keyはapenderの名前を表しています。valueの中には必ず選ぶ属性がtypeがあります。typeによってvalueのフォーマットも違います。以下ではいくつかのタイプを話します。
    file
    fileログは指定されたファイルに出力されます。
    
    log4js.configure({
     appenders: {
      everything: { type: 'file', filename: 'all-the-logs.log' }
     },
     categories: {
      default: { appenders: [ 'everything' ], level: 'debug' }
     }
    });
    
    const logger = log4js.getLogger();
    logger.debug('I will be logged in all-the-logs.log');
    
    一般的な設定のプロパティ
    1.type:'file'
    2.filename string出力ファイルの名前
    3.maxLogSize integerログファイルの最大サイズ(バイト単位)です。指定されていない場合、ログスクロールは発生しません。
    4.backupログスクロール中に残しておく古いログのファイル数はデフォルトでは5です。
    5.layoutデフォルトはbaic layoutです。
    6.keep FileExt bollan  デフォルトではfalseスクロールログファイルの場合は、ファイル拡張子を保持します。(file.logはfile.logではなく、file.log.1になります。)
    7.comppressはスクロールしたログファイルを圧縮する
    dateFile
    dateFileログのスクロールは、ファイルサイズではなく構成の時間フォーマットに従ってスクロールします。
    
    log4js.configure({
     appenders: {
      everything: { type: 'dateFile', filename: 'all-the-logs.log' }
     },
     categories: {
      default: { appenders: [ 'everything' ], level: 'debug' }
     }
    });
    
    一般的な設定のプロパティ
    1.type:'dateFile'
    2.filename string出力ファイルの名前
    3.pattern(デフォルトは.yyy-M-dd)-いつログをスクロールするかを確認するためのモードです。
    4.layoutデフォルトはbaic layoutです。
    5.daysToKeep integer(デフォルトは0)-この値が0より大きい場合、ログのスクロール中にその日数より前のファイルを削除します。
    6.keep FileExt(デフォルトはfalse)-ログファイルをスクロールする時にファイルの拡張子を保持します(file.logがfile.017-05-30.logに変化します。file.logs.2010-05-30
    7.comppressはスクロールしたログファイルを圧縮する
    categories
    categoriesもmapタイプのデータで、keyはcategoryの名前は文字列で、valueは対象です。
    valueの常用属性
  • level定義印刷ログのレベル
  • appnders定義印刷のapender
  • get Logger([category])方法
    get Loggerメソッドは、各レベルのログを印刷するために、loggerオブジェクトを返します。
    getloggerメソッドにはオプションパラメータcategoryの名前がありますが、書かない場合はcategoriesのdefaultで定義されているルールを使って印刷します。記入後は対応するcategoryで定義されているルールに従ってログを印刷します。
    参考文献アプリ
    以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。