Самый простой способ вывода информации в консоль без ошибок в тех браузерах, где консоль не поддерживается.
console && console.log && console.log("whatever");
Ниже представленный код позволяет глобально использовать консоль в любом браузере не боясь появления ошибок в браузерах, где консоль не поддерживается.
;(function () {
window.console = window.console || {};
var methods = [
'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
'timeStamp', 'trace', 'warn'
]
, length = methods.length
, currentMethod;
while (length--) {
currentMethod = methods[length];
if ( ! window.console[currentMethod] ) {
window.console[currentMethod] = function () {};
}
}
})();
Пример дебагера с использованием консоли.
var debug = {
enable: true
, log: function (message) {
if (this.enable && console && console.log) {
console.log(message);
}
}
};
debug.log('Все работает!');
Пример отсылки логов на сервер для записи их в лог-файл.
var Logger = {
url: null
, number: 0
, log: function (message, url, line) {
this._sendLog(message, url, line, 'log');
}
, debug: function (message, url, line) {
this._sendLog(message, url, line, 'debug');
}
, info: function (message, url, line) {
this._sendLog(message, url, line, 'info');
}
, warn: function (message, url, line) {
this._sendLog(message, url, line, 'warn');
}
, error: function (message, url, line) {
this._sendLog(message, url, line, 'error');
}
, _sendLog: function (message, url, line, level) {
this.number++;
var text = this.number + '. ' + message + ' (file: ' + url + (line !== undefined ? ', line: ' + line : '') + ')';
$.ajax({
url: this.url
, type: 'POST'
, cache: false
, data: {message: text, level: level}
});
}
};
Logger.url = '/log';
Logger.debug('Инициализация констант завершена.', 'menu.html');
window.onerror = function(message, url, line) {
Logger.error(message, url, line);
};
Приоритет вызовов команд дебагера:
log (1) < debug (2) < info (3) < warn (4) < error (5)
Комментариев нет:
Отправить комментарий