JavaScript: как напечатать сообщение в консоль ошибок?
Как я могу напечатать сообщение в консоль ошибок, предпочтительно включая переменную?
например, что-то вроде:
print('x=%d', x);
18 ответов:
установить Firebug и тогда вы можете использовать
console.log(...)
иconsole.debug(...)
и т. д. (см. документация для более).
console.error(message); //gives you the red errormessage console.log(message); //gives the default message console.warn(message); //gives the warn message with the exclamation mark in front of it console.info(message); //gives an info message with an 'i' in front of the message
вы также можете добавить CSS в свои сообщения журнала:
console.log('%c My message here', "background: blue; color: black; padding-left:10px;");
исключения регистрируются в консоли JavaScript. Вы можете использовать это, если вы хотите сохранить Firebug отключено.
function log(msg) { setTimeout(function() { throw new Error(msg); }, 0); }
использование:
log('Hello World'); log('another message');
один хороший способ сделать это, что работает кросс-браузер, изложенные в Отладка JavaScript: Выбросьте Свои Предупреждения!.
Если вы используете сафари можно писать
console.log("your message here");
и он появляется прямо на консоли браузера.
вот решение буквального вопроса о том, как печатать сообщение на консоль ошибок браузера, а не на консоль отладчика. (Могут быть веские причины обойти отладчик.)
Как я уже отмечал в комментариях о предложении бросить ошибку, чтобы получить сообщение в консоли ошибок, одна проблема заключается в том, что это прервет поток выполнения. Если вы не хотите прерывать поток, вы можете выбросить ошибку в отдельный поток, созданный с помощью setTimeout. Отсюда и мое решение (которое оказывается разработка по Иво Даниэлка):
var startTime = (new Date()).getTime(); function logError(msg) { var milliseconds = (new Date()).getTime() - startTime; window.setTimeout(function () { throw( new Error(milliseconds + ': ' + msg, "") ); }); } logError('testing');
Я включаю время в миллисекундах с момента начала, потому что тайм-аут может исказить порядок, в котором вы могли бы ожидать, чтобы увидеть сообщения.
второй аргумент метода Error - это имя файла, которое является пустой строкой здесь, чтобы предотвратить вывод бесполезного имени файла и номера строки. Можно получить функцию вызывающего абонента, но не в простом браузере самостоятельный путь.
было бы неплохо, если бы мы могли отобразить сообщение с предупреждением или сообщением значок, а не значок ошибки, но я не могу найти способ сделать это.
еще одна проблема с использованием throw заключается в том, что он может быть пойман и отброшен с помощью заключительного try-catch, а помещение броска в отдельный поток также позволяет избежать этого препятствия. Однако есть еще один способ, которым ошибка может быть поймана, а именно, если окно.обработчик onerror заменяется на тот, который делает что-то другое. Ничем не могу вам помочь.
чтобы на самом деле ответить на вопрос:
console.error('An error occurred!'); console.error('An error occurred! ', 'My variable = ', myVar); console.error('An error occurred! ' + 'My variable = ' + myVar);
вместо ошибки можно также использовать info, log или warn.
Если вы используете Firebug и нужно поддерживать IE, Safari или Opera, а также,Firebug Lite добавляет консоли.log () поддержка этих браузеров.
примечание о 'throw ()' упоминалось выше. Кажется , что он полностью останавливает выполнение страницы (я проверил в IE8), поэтому он не очень полезен для регистрации "on going processes" (например, для отслеживания определенной переменной...)
мое предложение, возможно, добавить textarea элемент где-то в документе и изменить (или добавить) его стоимостью (что изменит его текст) для регистрации информации, когда это необходимо...
Как всегда, Internet Explorer-это большой слон на роликах, который останавливает вас просто с помощью
console.log()
.журнал jQuery может быть адаптирована довольно легко, но это боль, чтобы добавить его везде. Одно из решений, если вы используете jQuery, - поместить его в свой файл jQuery в конце, сначала уменьшенный:
function log() { if (arguments.length > 0) { // Join for graceful degregation var args = (arguments.length > 1) ? Array.prototype.join.call(arguments, " ") : arguments[0]; // This is the standard; Firebug and newer WebKit browsers support this. try { console.log(args); return true; } catch(e) { // Newer Opera browsers support posting erros to their consoles. try { opera.postError(args); return true; } catch(e) { } } // Catch all; a good old alert box. alert(args); return false; } }
посещение https://developer.chrome.com/devtools/docs/console-api для полной ссылки на api консоли
console.error(object[Obj,....])\
в этом случае объектом будет ваша строка ошибки
function foo() { function bar() { console.trace("Tracing is Done here"); } bar(); } foo();
console.log(console); //to print console object console.clear('console.clear'); //to clear console console.log('console.log'); //to print log message console.info('console.info'); //to print log message console.debug('console.debug'); //to debug message console.warn('console.warn'); //to print Warning console.error('console.error'); //to print Error console.table(["car", "fruits", "color"]);//to print data in table structure console.assert('console.assert'); //to print Error console.dir({"name":"test"});//to print object console.dirxml({"name":"test"});//to print object as xml formate
To Print Error:- console.error('x=%d', x);
console.log("This is the outer level"); console.group(); console.log("Level 2"); console.group(); console.log("Level 3"); console.warn("More of level 3"); console.groupEnd(); console.log("Back to level 2"); console.groupEnd(); console.log("Back to the outer level");
console.log("your message here");
работает для меня.. я ищу вот это.. я использовал Firefox. вот мой сценарий.
$('document').ready(function() { console.log('all images are loaded'); });
работает в Firefox и Chrome.