NODE JSログ選択タイプ
6440 ワード
NODEの開発において、ログの選択はexpressのログモジュールを除いて、主に需要を満たすことができません.
ここで私はわざわざ二つの日誌モジュールを選択しました.
(参考:https://github.com/nomiddlename/log4js-node)
第一種類、Log 4 js
一、node+log 4 js
それを選ぶ理由は nodeにロゴ4 jsモジュールがあります.直接 をインストールできます. log 4 jsはexpressフレームと完璧に結合することができます. log 4 jsはログを異なるレベルの異常またはエラーに分けることができます.魂は を把握できます.
二、据付運転
無駄話は多くなくて、私達は今logs 4 jsをインストールして、とても簡単です:直接にあなたのプロジェクトのルートディレクトリで入力します.
出力のレベルがinfoであれば、infoレベル以下のログは印刷されません.info情報、warm警告、errorエラー、fatal致命エラーのみ印刷されます.
私達の簡単な実験の下で、app.jsファイルの修正は以下の通りです.
更に深く突っ込んで、私達はap.jsに下記のコードを入れます.
私たちは実験を続けて、ap.jsの中に下記のコードを入れます.
アプリでコードを書く代わりにプロファイルを使って、下のように構成ファイルのlogl 4 m.jsonがあります.そして、ap.jsにlogs 4 js.co figure('myulog 4 js.uconfigrations.json');を追加すればいいです.
第二種類、wiston
これはノートを管理するための専門のログライブラリです.githuの中でforkが一番多いです.私達はそれが何か魅力があるかを見に来ました.https://github.com/flatiron/winston Winstonは、複数の送信と単純で一般的なログライブラリをサポートするように設計されています.wistonレコーダの各例は、複数の位置を異なる程度に配置することができます.私たちが欲しいエラーはデータベースに記録されますが、他の情報はコンソールに出力したいです.
一、インストールは簡単です.直接npm install wistonでいいです.
二、使う
アプリ.jsに下記のコードを入力します.
それを紹介する時、私達はそれをカスタマイズすることができると言って、それを私達の欲しい場所に使います.
例えば、app.jsを修正して、上のコードを注釈します.
{「level」:「info」、「message」:「Hello distributed log files!」、「timestamp」:「2014-0」 3-09 T 14:53:56.93 Z'''''''level':'info'、'message':'Hello again distributed logs','timestamp':'2014-0 3-09 T 14:53:56.955 Z"}.
二つのログ情報
二、ログレベル
ロゴ4 jsと同じで、多くのレベルがあります.下記のコードをご覧ください.
ここで私はわざわざ二つの日誌モジュールを選択しました.
(参考:https://github.com/nomiddlename/log4js-node)
第一種類、Log 4 js
一、node+log 4 js
それを選ぶ理由は
二、据付運転
無駄話は多くなくて、私達は今logs 4 jsをインストールして、とても簡単です:直接にあなたのプロジェクトのルートディレクトリで入力します.
npm install log4js // node_modules log4js
簡単な配置、配置の前に、ロゴ4 jsの出力の6つのレベルを理解します.trace、debug、info、warn、error、fatal出力のレベルがinfoであれば、infoレベル以下のログは印刷されません.info情報、warm警告、errorエラー、fatal致命エラーのみ印刷されます.
私達の簡単な実験の下で、app.jsファイルの修正は以下の通りです.
var log4js = require('log4js'); // log4js
log4js.configure({
appenders: [
{
type: "file", //
filename: "cheese.log", //
category: [ 'cheese','console' ]
},
{
type: "console" //
}
],
replaceConsole: true // console.log
});
プロジェクトのルートディレクトリの下でcheese.logという名前のログファイルが生成されていることが分かります.その中の内容は「INFO」consone-Express server listening on portです. 3000、コンソールの情報と一致します.更に深く突っ込んで、私達はap.jsに下記のコードを入れます.
log4js.loadAppender('file');
log4js.addAppender(log4js.appenders.file('ok.log'), 'ok'); // ok.log, ok
var logger = log4js.getLogger('cheese'); // , cheese
logger.setLevel('ERROR'); // error
console.error(" , ", { some: "AA", use: " " }); //
logger.trace('Entering cheese testing');
私達はログファイルの中に何が記録されているかを見てみました.はい、Entering cheese testingの文字が見つかりませんでした.私達が設定したレベルはtraceの情報を記録する必要がないからです.私たちは実験を続けて、ap.jsの中に下記のコードを入れます.
logger.fatal(' .');
var anotherLogger = log4js.getLogger('another');
anotherLogger.debug(" "); // , ,
var okLog = log4js.getLogger('ok'); // ok
okLog.debug("www.okhqb.com no1"); //
私たちは、fatalの情報は記録できることを発見しました.anotherのマークを定義したログファイルがないので、「加入したばかり」は記録できません.しかし、私たちはokを定義しています.そして、何のレベルも定義していません.だから、「wwww.okhqb.com」はもうok.logファイルに記録しています.アプリでコードを書く代わりにプロファイルを使って、下のように構成ファイルのlogl 4 m.jsonがあります.そして、ap.jsにlogs 4 js.co figure('myulog 4 js.uconfigrations.json');を追加すればいいです.
{
"appenders": [
{
"type": "file",
"filename": "log_ok.log",
"maxLogSize": 20480, //
"backups": 3,
"category": "ok-logger" //
},
{
"type": "file",
"absolute": true,
"filename": "log_360.log",
"maxLogSize": 20480,
"backups": 10,
"category": "360-logger" //
}
]
}
nodeプロジェクトとより良い結合により、app修正のすべてのコメントを下記のコードに追加します.log4js.configure({
appenders: [
{ type: 'console' },
{ type: 'file', filename: 'cheese.log', category: 'cheese' }
]
});
var logger = log4js.getLogger('cheese');
logger.setLevel('INFO'); //
app.configure(function() {
app.use(log4js.connectLogger(logger, { level: log4js.levels.INFO })); // node
});
上では、ロゴ4 jsの使い方を簡単に紹介しただけで、その機能はこれらだけではないです.第二種類、wiston
これはノートを管理するための専門のログライブラリです.githuの中でforkが一番多いです.私達はそれが何か魅力があるかを見に来ました.https://github.com/flatiron/winston Winstonは、複数の送信と単純で一般的なログライブラリをサポートするように設計されています.wistonレコーダの各例は、複数の位置を異なる程度に配置することができます.私たちが欲しいエラーはデータベースに記録されますが、他の情報はコンソールに出力したいです.
一、インストールは簡単です.直接npm install wistonでいいです.
二、使う
アプリ.jsに下記のコードを入力します.
var winston = require('winston'); //
winston.log('info', 'Hello distributed log files!'); //
winston.info('Hello again distributed logs'); // info
winston.add(winston.transports.File, { filename: 'somefile.log' }); //
winston.remove(winston.transports.Console);
上のコードは起動時にログ情報を出力しますが、somefile.logログファイルには記録されません.定義ファイルの前にすでに出力されていますので、場所を交換すればログ情報を記録できます.それを紹介する時、私達はそれをカスタマイズすることができると言って、それを私達の欲しい場所に使います.
例えば、app.jsを修正して、上のコードを注釈します.
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)(), //
new (winston.transports.File)({ filename: 'myfile.log' }) //
]
});
logger.log('info', 'Hello distributed log files!');
logger.info('Hello again distributed logs');
からappを起動します.プロジェクトのルートディレクトリの下にmyfile.logsのファイルがあります.それを開けて、中に記録しました.{「level」:「info」、「message」:「Hello distributed log files!」、「timestamp」:「2014-0」 3-09 T 14:53:56.93 Z'''''''level':'info'、'message':'Hello again distributed logs','timestamp':'2014-0 3-09 T 14:53:56.955 Z"}.
二つのログ情報
二、ログレベル
ロゴ4 jsと同じで、多くのレベルがあります.下記のコードをご覧ください.
logger.log('silly', "127.0.0.1 - there's no place like home");
logger.log('debug', "127.0.0.1 - there's no place like home");
logger.log('verbose', "127.0.0.1 - there's no place like home");
logger.log('info', "127.0.0.1 - there's no place like home");
logger.log('warn', "127.0.0.1 - there's no place like home");
logger.log('error', "127.0.0.1 - there's no place like home");
logger.info("127.0.0.1 - there's no place like home");
logger.warn("127.0.0.1 - there's no place like home");
logger.error("127.0.0.1 - there's no place like home");
デフォルトのレベルの場合 winston.log('info', "127.0.0.1 - there's no place like home");
winston.info("127.0.0.1 - there's no place like home");
プロジェクトでは、ログレベルを定義します.このように設定できます.var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)({ level: 'error' }),
new (winston.transports.File)({ filename: 'somefile.log' })
]
});
上の二つの日誌モジュールは簡単なだけです.個人はロゴ4 jsを使う傾向があります.後はこの二つの日誌モジュールをそれぞれIMでテストします.実際の運用の中で彼らの長所と短所を体験して、最終的にその日誌モジュールを使うことを提案します.