如何显示日志使用的行号?

时间:2013-11-25 13:06:05

标签: javascript

我正在使用简单的日志功能。当我使用登录我的代码时,它会在写入的行号处显示控制台消息,而不是它正在调用的位置(显然它会)。是否有可能获得我正在使用它来正确调试代码的行号?提前谢谢!

/**
* Description: Console log
* @param {Object} p_sMessage
*/
function log(p_sMessage) {
    if(!Debug) { return; }
    else { if(window.console) { console.log(p_sMessage); }}
}

2 个答案:

答案 0 :(得分:2)

使用此函数获取调用者的行号:

function getLineNumber(){
    return (new Error).stack.split("\n")[4]
}

答案 1 :(得分:2)

如何将代码更改为:

log = Debug && window.console 
    ? window.console.log.bind(window.console) 
    : function() {};

这样log只会充当window.console.log的别名,因此不会向堆栈跟踪添加另一个步骤。