Как я могу напечатать сообщение на консоль ошибок, желательно с переменной?
Например, что-то вроде:
print('x=%d', x);
Как я могу напечатать сообщение на консоль ошибок, желательно с переменной?
Например, что-то вроде:
print('x=%d', x);
Ответы:
Установите Firebug, а затем вы можете использовать console.log(...)
и console.debug(...)
, и т. Д. (См. Документацию для более).
console.log()
etc должна работать во всех браузерах, включая IE. Тем не менее, во всех случаях вам необходимо открыть окно отладчика, в противном случае обращения к console
вызовут ошибки.
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: white; padding-left:10px;");
console.log
вы можете использовать css внутри консоли: |
Исключения регистрируются в консоли JavaScript. Вы можете использовать это, если хотите отключить Firebug .
function log(msg) {
setTimeout(function() {
throw new Error(msg);
}, 0);
}
Применение:
log('Hello World');
log('another message');
throw
должно быть завернуто в setTimeout
?
Хороший способ сделать это, работающий в кросс-браузерном режиме, описан в разделе «Отладка JavaScript»: выбрасывайте оповещения! ,
throw()
это определенно не способ сделать это. вы рано или поздно попадете в беду. для меня это было раньше :(
Вот решение буквального вопроса о том, как напечатать сообщение в консоли ошибок браузера, а не в консоли отладчика. (Могут быть веские причины, чтобы обойти отладчик.)
Как я заметил в комментариях о предложении выдать ошибку, чтобы получить сообщение в консоли ошибок, одна проблема состоит в том, что это прервет поток выполнения. Если вы не хотите прерывать поток, вы можете выбросить ошибку в отдельный поток, созданный с помощью 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 относится к имени файла, которое здесь является пустой строкой для предотвращения вывода бесполезного имени файла и номера строки. Можно получить функцию вызывающего абонента, но не простым браузерным способом.
Было бы хорошо, если бы мы могли отобразить сообщение со значком предупреждения или сообщения вместо значка ошибки, но я не могу найти способ сделать это.
Другая проблема с использованием броска состоит в том, что он может быть пойман и выброшен с помощью включающей попытки, и помещение броска в отдельный поток также позволяет избежать этого препятствия. Тем не менее, есть еще один способ, которым ошибка может быть перехвачена, а именно, если обработчик window.onerror заменен на другой, который делает что-то другое. Не могу помочь тебе там.
Чтобы на самом деле ответить на вопрос:
console.error('An error occurred!');
console.error('An error occurred! ', 'My variable = ', myVar);
console.error('An error occurred! ' + 'My variable = ' + myVar);
Вместо ошибки вы также можете использовать информацию, войти или предупредить.
console.error(..)
что это нестандартная функция, и ее не следует использовать в производстве. Что вы думаете об этом? Есть ли у вас какие-либо предложения для начинающих программистов, использующих console.error
vs console.log
?
console.log(...)
«нестандартным». В связи с этим, console.error
так же стабильно, как console.log
.
Если вы используете Firebug и вам нужна поддержка IE, Safari или Opera, Firebug Lite добавляет поддержку console.log () в эти браузеры.
Замечание о throw (), упомянутое выше. Кажется, что он полностью останавливает выполнение страницы (я проверил в IE8), поэтому он не очень полезен для регистрации «текущих процессов» (например, для отслеживания определенной переменной ...)
Возможно, я предлагаю добавить элемент textarea где-нибудь в вашем документе и изменить (или добавить) его значение (которое изменило бы его текст) для регистрации информации при необходимости ...
console.log()
, throw()
и т. Д. Кроме того, нет ничего плохого в поведении, throw()
как вы, вероятно, подразумеваете, - тот факт, что он останавливает выполнение, является преднамеренным и задокументированным ( разработчик. mozilla.org/en-US/docs/Web/JavaScript/Reference/… ), и это согласуется с тем, как исключения генерируются / перехватываются в других языках программирования. (Если вы хотите записать содержимое переменной без остановки выполнения, вот для чего console.log()
.)
console.log
- поэтому люди давали альтернативы. О throw()
прекращении казни, конечно, это намеренно, никто не сказал, что это не так. Вот почему обычно это не очень хороший способ записывать отладочную информацию во время выполнения, чего хотел ОП ...
Как всегда, 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.warn("Text to print on console");
Чтобы ответить на ваш вопрос, вы можете использовать функции ES6,
var var=10;
console.log(`var=${var}`);
Это не выводит на консоль, но откроет всплывающее окно с вашим сообщением, которое может быть полезно для некоторой отладки:
просто делать:
alert("message");