Получение консоли Firebug для отображения разных номеров строк - PullRequest
4 голосов
/ 08 сентября 2010

Я завернул вызовы firebugs console.log в функцию регистрации (которая проверяет наличие консоли вместе с другими флагами)

например:

Log(string) { if (console && DEBUG) console.log(string); }

Моя проблема в том, что консоль Firebug показывает номер строки вызова функции console.log, а не вызов функции Log.

Есть ли способ изменить, какие номера строк показывает firebug?

Ответы [ 4 ]

2 голосов
/ 15 сентября 2010

Firebug не позволяет вам изменить номер строки на консоли с помощью кода.

1 голос
/ 08 сентября 2010

console.trace () даст вам стек вызовов.

См. http://getfirebug.com/logging для получения дополнительной информации.

0 голосов
/ 23 октября 2013

Кажется, нет способа сделать это, поэтому я использовал console.group

console.group(file +' (line '+ line +')');
console.log(data);
console.groupEnd();
0 голосов
/ 06 марта 2013

Я выбрал немного другой подход и просто определил свойство, которое устанавливает переменную __stack__, преднамеренно выдавая ошибку, из этого мы можем получить имя файла, номер строки (и многие другие, такие как вызывающие абоненты и их номера строк, если вы выбираете реализовать их).

Кроме того, вместо того, чтобы настраивать функцию журнала, я также настраиваю ее как переменную, но такую, которая регистрируется при установке. Это будет место, где установлен LOG, а не там, где он был определен.

Это так же просто, как LOG = "мое сообщение". Затем вы можете использовать его позже как переменную, чтобы получить местоположение вашей последней отладки с alert(LOG)

/*@const*/ //for closure-compiler
DEBUG=2 // 0=off, 1=msg:file:line:column, 2=msg:stack-trace
if(DEBUG){

/*@const @constructor*/
Object.defineProperty(window,'__stack__',{get:function(){
    try{_ფ_()}catch(e){return e.stack.split(":")}
}})

/*@const @constructor*/
Object.defineProperty(window,'__file__',{get:function(){
    var s=__stack__,l=s.length
    return (isNaN(s[l-2]))?s[l-2]:s[l-3]
}})

/*@const @constructor*/
Object.defineProperty(window,'__line__',{get:function(){
    var s=__stack__,l=s.length
    return (isNaN(s[l-2]))?s[l-1]:s[l-2]
}})

/*@const @constructor*/
Object.defineProperty(window,'__col__',{get:function(){
    var s=__stack__,l=s.length
    return (isNaN(s[l-2]))?"NA":s[l-1]
}})

/*@const @constructor*/
Object.defineProperty(window,'LOG',{
    get:function(){return out},
    set:function(msg){if(DEBUG>1)out=msg+"\t-\t"+__stack__
        else out=msg+" in file:"+__file__+" @ Line:"+__line__+", Column:"+__col__
        console.log(out)}
})
}//end if(DEBUG)
...