2017-09-06 18 views
1

winstonロガーを使用してファイルに内容を書き込むが、それはcustomlogger.errorが使用されている場合にのみ機能する。ノードが以下のような何らかの参照エラーを出力している場合process.stderr.writeをwinstonに出力する方法

ReferenceError: aksbd is not defined 
at /home/nigilan/Desktop/homepagelogger/app.js:53:20 
at Layer.handle [as handle_request] (/home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/layer.js:95:5) 
at next (/home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/route.js:137:13) 
at Route.dispatch (/home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/route.js:112:3) 
at Layer.handle [as handle_request] (/home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/layer.js:95:5) 
at /home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/index.js:281:22 
at Function.process_params (/home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/index.js:335:12) 
at next (/home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/index.js:275:10) 
at /home/nigilan/Desktop/homepagelogger/app.js:38:5 
at Layer.handle [as handle_request] (/home/nigilan/Desktop/homepagelogger/node_modules/express/lib/router/layer.js:95:5) 

上記のようなエラーをwinstonでどのように保存するのですか?

P.S.未処理の例外を記録すると、nodejsサーバーは正常に動作しています。

+0

このコードは正常に動作していますが、winstonは非常に役に立ちます。 process.stderr.write = function(メッセージ){ fs.appendFile( 'k.log'、message、function(err){ if(err)throw err; }); } – Nigilan

答えて

0
` 
function formatArgs(args){ 
    return [util.format.apply(util.format, Array.prototype.slice.call(args))]; 
} 
console.info = function(){ 
    customlogger.info.apply(customlogger, formatArgs(arguments)); 
}; 
console.warn = function(){ 
    customlogger.warn.apply(customlogger, formatArgs(arguments)); 
};` 

ここでは、カスタムロガーの代わりにwinstonのデフォルトロガーを使用することもできます。下の要点コードはthisの完璧な答えです。

関連する問題