2012-06-15 2 views
3

Есть ли способ указать глубину трассировки стека при использовании console.trace? Я хотел бы найти это особенно полезно для получения информации и регистрации сообщений уровня, чтобы определить номер строки и файлУкажите глубину console.trace

ответ

2

Метод console.trace выглядит следующим образом:

exports.trace = function(label) { 
    // TODO probably can to do this better with V8's debug object once that is 
    // exposed. 
    var err = new Error; 
    err.name = 'Trace'; 
    err.message = label || ''; 
    Error.captureStackTrace(err, arguments.callee); 
    console.error(err.stack); 
}; 

https://github.com/joyent/node/blob/master/lib/console.js#L61

Так что, похоже, вы не можете установить глубина следа.

4

Вы можете контролировать, сколько кадры стека собираются путем установки переменной

Error.stackTraceLimit 

Установка в 0 отключит сбор трассировки стека. Любое конечное целое значение будет использоваться как максимальное количество кадров для сбора. Установка его в бесконечность означает, что будут собраны все кадры.

Другим вариантом является использование флага командной строки --stack-trace-limit:

node --stack-trace-limit=50 test.js 

Ссылки:

http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi

Смежные вопросы