是否可以獲取每個日誌輸出的行號和文件?獲取日誌輸出的行號和文件名
例如:
var winston = require('winston');
winston.log('info', 'some message!'); // this is at line 4 of myfile.js
應在日誌文件中規定,「一些信息」來自myFile.js線來到4.
是否可以獲取每個日誌輸出的行號和文件?獲取日誌輸出的行號和文件名
例如:
var winston = require('winston');
winston.log('info', 'some message!'); // this is at line 4 of myfile.js
應在日誌文件中規定,「一些信息」來自myFile.js線來到4.
您可以通過文件名作爲label
,你可以得到的文件來自callingModule的名稱。
創建logger.js
文件和代碼像
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
溫斯頓沒」由於性能方面的考慮,我們不打算這麼做。有關詳細信息,請致電check here。
我試過https://github.com/baryon/tracer但它不好,例如行號不時不正確。
這個問題與你希望實現的非常相似,除非你希望用winston明確地登錄。 https://stackoverflow.com/questions/14172455/get-name-and-line-of-calling-function-in-node-js – daviscodesbugs