Как я могу напечатать сообщение на консоли ошибок, предпочтительно включая переменную?
Например, что-то вроде:
print('x=%d', x);
Как я могу напечатать сообщение на консоли ошибок, предпочтительно включая переменную?
Например, что-то вроде:
print('x=%d', x);
Установите 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: выбросьте свои предупреждения!.
Вот решение буквального вопроса о том, как печатать сообщение в консоли ошибок браузера, а не в консоли отладчика. (Возможно, есть веские причины обойти отладчик.)
Как я заметил в комментариях о предположении о том, чтобы вызвать ошибку для получения сообщения в консоли ошибок, одна из проблем заключается в том, что это прервет поток выполнения. Если вы не хотите прерывать поток, вы можете выбросить ошибку в отдельный поток, созданный с помощью 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, а также положить бросок в отдельный поток, чтобы избежать этого препятствия. Тем не менее, есть еще один способ, чтобы ошибка могла быть поймана, а именно, если обработчик window.onerror заменен на тот, который делает что-то другое. Не могу помочь вам.
Если вы используете Safari, вы можете написать
console.log("your message here");
и он отображается прямо на консоли браузера.
Если вы используете Firebug, вам также необходимо поддерживать IE, Safari или Opera, Firebug Lite добавляет поддержку console.log() этим браузерам.
Чтобы ответить на вопрос:
console.error('An error occurred!');
console.error('An error occurred! ', 'My variable = ', myVar);
console.error('An error occurred! ' + 'My variable = ' + myVar);
Вместо ошибки вы также можете использовать информацию, журнал или предупреждение.
WebKit Web Inspector также поддерживает Firebug консольный API (просто небольшое дополнение к Dan answer).
Заметка о "throw()", упомянутом выше. Похоже, что он полностью прекратил выполнение страницы (я проверил в IE8), поэтому он не очень полезен для регистрации "на ходящих процессах" (например, для отслеживания определенной переменной...)
Мое предложение состоит в том, чтобы добавить элемент textarea где-нибудь в вашем документе и изменить (или добавить его) его значение (которое изменило бы его текст) для записи информации в случае необходимости...
Как всегда, Internet Explorer - это большой слон в роликах, который останавливает вас просто используя console.log()
.
jQuery log можно легко адаптировать, но это боль, чтобы добавить его повсюду. Одно решение, если вы используете 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,....])\
В этом случае объектом будет ваша строка ошибок
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
To Print Error:- console.error('x=%d', x);
console.log("your message here");
работает для меня.. я ищу это.. я использовал Firefox. вот мой Script.
$('document').ready(function() {
console.log('all images are loaded');
});
работает в Firefox и Chrome.
Самый простой способ сделать это:
console.warn("Text to print on console");
Это не печатает на консоль, но откроет вам всплывающее сообщение с сообщением, которое может быть полезно для некоторой отладки:
просто выполните:
alert("message");