2017-07-06 32 views
1

各ログ出力の行番号とファイルを取得できますか?例えばログ出力の行番号とファイル名を取得

var winston = require('winston'); 

    winston.log('info', 'some message!'); // this is at line 4 of myfile.js 

は「一部のメッセージは」あなたはlabelとして、ファイル名を渡すことができますし、ファイルを取得することができmyFile.jsライン4

+0

この質問は、winstonで明示的にログを記録することを望んでいない限り、あなたが達成したいと思っているものと非常に似ています。 https://stackoverflow.com/questions/14172455/get-name-and-line-of-calling-function-in-node-js – daviscodesbugs

答えて

0

から来たことをログファイルに指定する必要がありますcallingModuleの名前

var winston = require('winston'); 
var getLabel = function (callingModule) { 
    var parts = callingModule.filename.split('/'); 
    return parts[parts.length - 2] + '/' + parts.pop(); 
}; 

module.exports = function (callingModule) { 
    return new winston.Logger({ 
     transports: [ 
      new winston.transports.Console({ 
       label: getLabel(callingModule), 
       json: false, 
       timestamp: true, 
       depth:true, 
       colorize:true 
      }) 
     ] 
    }); 
}; 

今ここであなたのテストファイル

var logger = require('./logger')(module); 
function test() { 
    logger.info('test logger'); 
} 
test(); 

2017-07-08T07:15:20.671Z - info: [utils/test.js] test logger 
1

ウィンストンはdidnのような出力が見た目よりあなたがテストファイルを実行すると、」のようなlogger.jsファイルとコードを作成します。パフォーマンス上の懸念からその計画を立てています。詳細についてはcheck hereをご覧ください。

私はhttps://github.com/baryon/tracerを試しましたが、それは良くありません。行番号が間違っています。

関連する問題