是否可以获取每个日志输出的行号和文件?
例如:
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
关于node.js - 获取日志输出的行号和文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44952938/