如何创建以javascript显示文件名的日志系统

如何创建以javascript显示文件名的日志系统,javascript,node.js,Javascript,Node.js,如何创建在右侧显示文件名和行号的日志系统。 例如,当我跑步时 console.log('helloworld'); 在“index.js”中,将记录 “你好世界(index.js:1)” 您可以使用错误堆栈跟踪获取文件和行号: 函数getFileLine(被调用方){ const orig=Error.prepareStackTrace; Error.prepareStackTrace=(err,stack)=>[stack[0].getFileName(),stack[0].getLineN

如何创建在右侧显示文件名和行号的日志系统。
例如,当我跑步时

console.log('helloworld');
在“index.js”中,将记录

“你好世界(index.js:1)”

您可以使用错误堆栈跟踪获取文件和行号:

函数getFileLine(被调用方){
const orig=Error.prepareStackTrace;
Error.prepareStackTrace=(err,stack)=>[stack[0].getFileName(),stack[0].getLineNumber();
const err=新错误();
错误。captureStackTrace(错误,被调用方);
const lineNum=err.stack;
Error.prepareStackTrace=orig;
返回lineNum;
}
函数记录器(…args){
log(…args,`(${getFileLine(logger.join(“:”})`);
}
记录器(“foobar”);
如果提供的文件名太长,无法满足您的需要,则可以使用
path.basename

const path=require(“路径”);
函数getFileLine(被调用方){
const orig=Error.prepareStackTrace;
//这里有一个基本名称
Error.prepareStackTrace=(err,stack)=>[path.basename(stack[0].getFileName()),stack[0].getLineNumber()];
const err=新错误();
错误。captureStackTrace(错误,被调用方);
const lineNum=err.stack;
Error.prepareStackTrace=orig;
返回lineNum;
}
函数记录器(…args){
log(…args,`(${getFileLine(logger.join(“:”})`);
}
记录器(“foobar”);
试着看一看。希望这有帮助;)