电话记录
为错误和函数调用网站创建花式日志条目 .
错误 :
'use strict';
const createCallsiteRecord = require('callsite-record');
function myFunc() {
throw new Error('Yo!');
}
try {
myFunc();
}
catch(err) {
console.log(createCallsiteRecord({ forError: err }).renderSync());
}
⬇

对于堆栈中的函数调用 :
'use strict';
const createCallsiteRecord = require('callsite-record');
function func2 () {
(function func1 () {
console.log(createCallsiteRecord({ byFunctionName: 'func2' }).renderSync());
})();
}
func2();
⬇

其他的好东西:
安装
npm install callsite-record
API 密码
创建Callsite Record ({ for Error, isCallsiteFrame, processFrameFn }) – Callsite Record
您可以为任何堆栈框架生成一个呼叫网站, 而不仅仅是最上层的。 使用 isCallsiteFrame 要选择的函数
一个框架。 从顶部开始的每个框架都使用此函数 。 返回时 true 用于创建所需的框架
电话站.
示例
const createCallsiteRecord = require('callsite-record');
try {
throw new Error("We're doomed");
}
catch(err) {
const record = createCallsiteRecord({ forError: err });
}
创建呼叫站点记录( { 按功能 名称, 类型Name, processFrameFn } ) – 呼叫记录
创建 CallsiteRecord 用于调用堆栈中的函数 byFunctionName。您可以选择指定
typeName 如果函数是一种方法。 如果函数是构造器集 byFunctionName 改为 constructor。 。 。 .
示例
const createCallsiteRecord = require('callsite-record');
(function func1() {
(function func2() {
(function func3() {
const record = createCallsiteRecord({ byFunctionName: 'func2' });
})();
})();
})();
您可以指定 processFrameFn 函数,它将按 calltack处理每个框架。 需要的时候有用
启用帧处理像 source-maps-support。 。 。 .
示例
const createCallsiteRecord = require('callsite-record');
const wrapCallSite = require('source-map-support').wrapCallSite;
try {
throw new Error("We're doomed");
}
catch(err) {
const record = createCallsiteRecord({ forError: err, processFrameFn: wrapCallSite });
}
(function func1() {
(function func2() {
(function func3() {
const record = createCallsiteRecord({ byFunctionName: 'func2', processFrameFn: wrapCallSite });
})();
})();
})();
呼叫记录
Calliste Record.refers ([stand options]) – 承诺<String>
Renders将网站记录调用到字符串.
示例
record.render().then(str => console.log(str));
Calliste Record.renderSync([下发可选]) 字符串
同步版本 CallsiteRecord.render。 。 。 .
参数化
指定代码框中调用站点上下行数. 默认 : 5。 。 。 .
示例
console.log(record.renderSync({ frameSize: 0 }));
// > 12 | func1();
// ...
console.log(record.renderSync({ frameSize: 1 }));
// 11 |(function func2() {
// > 12 | func1();
// 13 |})();
// ...
转换选项.codeFrame
指定是否打开代码框。 如果禁用只显示堆栈 . 默认 : true。 。 。 .
转换选项.stack
指定除代码框架外是否还要提供堆栈跟踪. 默认 : true。 。 。 .
转换选项.stackFilter
用于过滤堆栈框架的函数 。 函数接受两个参数 :
stackFrame- 堆入门.idx- 边框索引.isV8StackFrame- 狦true接下来stackFrame是一个 V8 调用 对象. 否则,它是一个 堆叠外观 对象.
默认 : null。 。 。 .
示例
const sep = require('path').sep;
// Remove node core lib calls from the stack trace
record.renderSync({ stackFilter: frame => frame.getFileName().indexOf(sep) > -1 });
变相选项. lander
指定渲染的输出格式. 默认 : renderers.default你可以通过自己的
渲染器对象 (实例执行)或使用
一个内置渲染器:
渲染器。 默认
提供上面显示的ANSI色输出.
用法 :
const defaultRenderer = require('callsite-record').renderers.default;
record.renderSync({ renderer: defaultRenderer });
渲染器 无颜色
与 default 造型器,但没有颜色.
用法 :
const noColorRenderer = require('callsite-record').renderers.noColor;
record.renderSync({ renderer: noColorRenderer });
渲染器.html
输出 HTML 后可以与 CSS 进行装饰并嵌入网页. 示例输出。 。 。 .
用法 :
const htmlRenderer = require('callsite-record').renderers.html;
record.renderSync({ renderer: html });
相关
- 是-es2016-关键词 -确定字符串是否为ES2016关键词.
- 高亮点 - 突出控制台或任何其他介质的ECMAScript语法.
作者
伊万·尼库林 (单位:千美元)[email protected] (英语)(中文(简体) )