Как просмотреть console.log
сообщения веб-сайта с помощью эмулятора Android?
Браузер console.log в эмуляторе Android
Ответы (6)
Из короткой статьи Рича Четвинда «Отладка Javascript в браузере Android».
Вы можете регистрировать ошибки javascript и сообщения консоли с вашего Android-устройства или эмулятора. Для этого сначала необходимо установить Android SDK и драйверы USB, а также включить отладку по USB на самом устройстве.
Чтобы проверить, правильно ли подключено устройство, вы можете запустить следующую команду из каталога инструментов Android SDK, и вы должны увидеть устройство в списке.
c:\android sdk..\platform-tools\adb devices
Затем вы можете использовать Android Debug Bridge для фильтрации отладочных сообщений, чтобы вы могли видеть только сообщения, связанные с браузером, выполнив следующую команду cmd.
c:\android sdk..\platform-tools\adb logcat browser:V *:S
По умолчанию журнал записывается в стандартный вывод, поэтому вы увидите любые ошибки Javascript или сообщения console.log и т. д., записанные в окно cmd.
Дополнительные сведения: документы по инструменту Logcat CLI.
running logcat browser:V *:S
, похоже, выводит все журналы для меня, мне пришлось передать их в grep, чтобы получить соответствующие журналы.
- person Jesse; 20.07.2013
cd ~/eclipse/adt-bundle-linux-x86_64-20140702/sdk/platform-tools; ./adb logcat browser:V *:S | sed 's/^.*Console: \(.*\) [^ ]*/\1/'
- person gaRex; 06.08.2014
adb logcat chromium:V *:S
в API 21.
- person deefactorial; 31.07.2015
Если вы запустили эмулятор из Eclipse
с ADT plugin
, вы увидите все журналы консоли JavaScript
непосредственно в представлении LogCat:
Window -> Show View -> Android -> LogCat
Вы можете временно добавить JavaScript, например...
var console = {
log: function(msg) { alert(msg); }
};
Уродливо, как ад, но это работает.
Если вы используете Android Studio; вы можете открыть свой Logcat (Alt+6) и отфильтровать: :CONSOLE
При фильтрации только :CONSOLE
(а не INFO:CONSOLE
) будут отображаться все типы сообщений консоли (включая ERROR, WARN и т. д.).
Я взломал console.log, используя этот код:
function logManager() {
var self = this;
self.init = function () {
console.log('logmanager initialized');
var old = console.log;
self.logger = document.getElementById('log');
console.log = function (message, options) {
if (typeof message == 'object') {
self.logger.innerHTML = (JSON && JSON.stringify ? JSON.stringify(message) : message) + '<br />' + self.logger.innerHTML;
} else {
self.logger.innerHTML = message + '<br />' + self.logger.innerHTML;
}
}
}
self.toggleLogVisibility = function () {
return $(self.logger).toggle();
};
}
И используйте это так в своем html с вашим собственным стилем (абсолютный верхний правый - это то, что я использовал)
<div id="log" class="log">
Application loaded...
</div>
И в вашем jscript (запустите это на странице, загруженной, поскольку элемент журнала должен существовать)
document.lmgr = new logManager();
document.lmgr.init();
Команда - получить лог от эмулятора
adb -e logcat
adb.exe можно найти в $your_installation_path$\android sdk\platform-tools
более подробно https://docs.microsoft.com/ru-ru/xamarin/android/deploy-test/debugging/android-debug-log?tabs=windows