Как мне остановить усечение стековых трасс в логах?

Если вы используете jQuery, вы можете использовать библиотеку, такую ​​как jQuery BBQ: Back Button & amp; Query Library .

... jQuery BBQ предоставляет полный метод .deparam() наряду с управлением состоянием хеш-хэшей и фрагментами / строками запроса и слиянием строк / запросов.

blockquote>

Редактирование: добавление Deparam Пример:

 var DeparamExample = function() {
            var params = $.deparam.querystring();

            //nameofparam is the name of a param from url
            //code below will get param if ajax refresh with hash
            if (typeof params.nameofparam == 'undefined') {
                params = jQuery.deparam.fragment(window.location.href);
            }
            
            if (typeof params.nameofparam != 'undefined') {
                var paramValue = params.nameofparam.toString();
                  
            }
        };

Если вы хотите просто использовать обычный JavaScript, вы можете использовать ...

var getParamValue = (function() {
    var params;
    var resetParams = function() {
            var query = window.location.search;
            var regex = /[?&;](.+?)=([^&;]+)/g;
            var match;

            params = {};

            if (query) {
                while (match = regex.exec(query)) {
                    params[match[1]] = decodeURIComponent(match[2]);
                }
            }    
        };

    window.addEventListener
    && window.addEventListener('popstate', resetParams);

    resetParams();

    return function(param) {
        return params.hasOwnProperty(param) ? params[param] : null;
    }

})();​

Из-за нового API истории HTML и, в частности, history.pushState() и history.replaceState(), URL-адрес может быть изменен, что приведет к аннулированию кеша параметров и их значений.

Эта версия будет обновлять свой внутренний кеш параметров при каждом изменении истории.

68
задан mtk 6 January 2015 в 11:07
поделиться

2 ответа

Когда Вы видите '... Еще 113', который означает, что остающиеся строки 'вызванный' исключением идентичны остающимся строкам от той точки на родительского исключения.

, Например, Вы будете иметь

com.something.XyzException
  at ...
  at ...
  at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
  at ... <the other 113 lines are here>...
Caused by: <the above>.

, Эти два отслеживания стека 'встречаются' в AbstractBatcher.executeBatch, строка 242, и затем с тех пор восходящая трассировка вызовов совпадает с переносящимся исключением.

68
ответ дан Cowan 6 January 2015 в 11:07
поделиться

Apache Commons Lang предоставляет хороший util метод ExceptionUtils.printRootCauseStackTrace () , который печатает вложенный stacktrace 'вверх тормашками'. Результат намного более интуитивен.

, Если Вы видите результат рядом с оригиналом из printStackTrace () метод, будет ясно, куда 'еще 113' строк пошли.

20
ответ дан seanf 6 January 2015 в 11:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: