【发布时间】:2015-11-22 00:35:20
【问题描述】:
是否可以使用一些 javascript 技巧来告诉 console.log 它应该输出哪个行号?
假设,我们下面这个简单的例子:
function Logger () {
this.debug = function(msg) {
// do some stuff with msg
console.log(msg);
};
}
var log = new Logger();
log.debug("Hello");
如果您打开该页面,Chrome 会显示以下内容:
这表明该消息记录在main.js:4,但我真正想要的是它显示main.js:9。因为第 9 行是调用记录器的位置。
对于这个简单的情况,它并没有太大的区别,但是当 Logger 在一个单独的文件中时,它总是显示 logger.js 而不是调用 logger 的类。
Logger 类应该对记录的消息做一些额外的事情(例如,将其发送到服务器),因此我不能只使用this.debug = console.log。
编辑:
已经有一些类似的问题了,不过都是在输出中多加了一行,不能点击跳转到对应的行:
- Extending console.log without affecting log line
- console.log wrapper that keeps line numbers and supports most methods?
- Get console wrapper to log message on correct line
- Getting Chrome's console.log to display the line that called a function
- Custom console.log that keeps line number
- Intercept console.log but keep stack
- https://stackoverflow.com/questions/28457477/javascript-console-log-change-line-number-to-somewhere-higher-in-the-stack?rq=1
【问题讨论】:
标签: javascript logging