Idea log android studio где находится
Перейти к содержимому

Idea log android studio где находится

  • автор:

IDE logging system

Logging in the IDE is based on the com.intellij.openapi.diagnostic.Logger class. This is an abstraction layer that allows different logging libraries (or their configurations) to be chosen by the IDE, without affecting most of the code. In the current setup, Log4J is used by the IDE at runtime. For details, see IdeaLogger , LoggerFactory and StartupUtil.prepareAndStart .

Logging is configured slightly differently during testing, where additional output is produced at the end of the test run and separate files are used. See TestLoggerFactory .

Reading logs

Configuration for the logging system can be found in log.xml . By default all messages with level INFO and above are written to the log file, idea.log . When running Studio locally, you can find it under tools/idea/system/log . Warnings are additionally written to standard output and errors are made visible to the user by flashing a red icon in the status bar. See the section below for details on how to use the DEBUG level.

When you start Studio from IntelliJ, the run configuration will open two tabs in the Run/Debug tool window: “Console” and “idea.log”. The former displays standard output (and thus all warnings), the latter the full log (note that there’s UI there to filter displayed log entries).

Using loggers

Because loggers can be turned on and off in various ways, it‘s important to use a logger with a name that’s related to the code that’s using it (logger names typically come from class and package names). There are three ways of getting a Logger instance:

  • Calling Logger.getInstance(Class) , the most common.
  • From Kotlin, calling com.intellij.openapi.diagnostic.LoggerKt#logger() , e.g. val LOG = logger() .
  • From Kotlin, calling com.intellij.openapi.diagnostic.LoggerKt#logger(KProperty) to be used in top-level functions.

If you are only logging in exceptional situations, consider constructing the Logger instance only once you need it, e.g. when dealing with an exception. The logging infrastructure has a cost, so this way you don‘t pay for what you don’t need. If you log during normal IDE operation (on INFO or DEBUG level), store the logger in a static final field, so it‘s not recreated every time it’s used. See go/adtstyle for more details.

Make sure to provide enough information and a Throwable instance when available. The idea.log file is often the only piece of information we get from users and it makes life a lot easier if it can be used to fix a problem that cannot be reproduced locally.

Pick the right level for every message. Scanning attached log files for errors and warnings is the first step in triaging a bug, so try not to spam these levels. Use the ERROR log level only in the case of genuinely unexpected errors. Error logs grab user’s attention since they flash a red icon in the status bar. In addition, the number of times these happen is tracked via metrics as a proxy for Studio quality. Typically, scenarios that you can recover from should not be errors. Exceptions logged as errors can be found in our exceptions dashboard.

Remember that formatting the strings and writing to the log file takes time, so consider using DEBUG level for any additional information (and see the section below on how to get that information back).

DEBUG level

By default DEBUG messages are not logged anywhere, but this doesn’t mean the level is useless. You (or the user) can turn on debug logging for a given logger (or all loggers in a given package) by using Help, Debug Log Settings. To use, paste name of a logger in the box and save your changes. You should start seeing relevant log output in idea.log . Remember that Logger.getInstance prepends a # character to the class name! When running Studio locally, you will have to change the display settings in the idea.log tab to show all levels (it shows only INFO and above by default). The set of enabled loggers is a sticky setting and will survive a restart. You can ask your users to go through this flow before attaching logs, to get additional information.

Remember that debug messages are ignored most of the time, so make sure not to do any work just for the purpose of logging (including calling String.format ). Most of the time, you should check Logger.isDebugEnabled before computing the information that needs to be logged. In Kotlin you can use the Logger.debug(e: Exception?, lazyMessage: () -> String) extension method which will do nothing if debug output is not needed.

Как снять логи для iOS и Android приложений

Оксана Куценко

Как снять логи для iOS и Android приложений

Мобильное приложение или приложение — это программное обеспечение, предназначенное для работы на смартфонах, планшетах и других мобильных устройствах.

Загружаются из магазина приложений (Google Play или App Store) на мобильном устройстве.

Виды мобильных приложений:

  • Нативные
  • Веб-приложения
  • Гибридные

Распространенные причины возникновения багов в мобильных приложениях:

  • Проблемы при установке/удалении мобильных приложений
  • Проблемы с поддержкой различных версий ОС и устройств
  • Проблемы с соблюдением принципов безопасности
  • Проблемы с большим потреблением ресурсов девайса
  • Проблемы со скоростью запуска и работы приложения
  • Проблемы локализации
  • Проблемы при вращении экрана
  • Проблемы с непонятными пользователям сообщениями об ошибке
  • Проблемы при подключении к интернету
  • Проблемы, связанные с условиями работы офлайн
  • Проблемы, связанные с низким уровнем заряда батареи
  • Проблемы после перезагрузки телефона
  • Проблемы после входящих звонков и SMS

Важную роль при диагностировании ошибок в мобильных приложениях играют логи.

Логи и их виды

Логи — это записи или сообщения в виде текста, в которых записываются все действия пользователя или ответы системы на действия пользователя, то есть, вся информация о том, что пользователь делает и что нажимает на самом устройстве в приложении.

Логи предназначены для того, чтобы более подробно воспроизвести ошибку, разобраться, в чем именно состоит проблема, и легче найти пути ее решения.

Виды логов

Логи мобильных приложений делятся на два основных вида: консольные (обычные) логи и креш-логи.

Консольные логи — это лог-файлы, являющиеся журналом событий и содержащие все записи о системных событиях, ответы устройства на действия пользователя, которые обновляются в режиме реального времени.

Креш-логи — это лог-файлы, которые создаются после экстренного завершения работы программы (креша). Файлы креш-логов имеют расширение .crash или .ips. Креш-логи содержат информацию с момента запуска программы и до экстренного завершения программы.

Как снять логи мобильных приложений

Существуют разные варианты снятия логов для мобильных приложений в зависимости от операционной системы телефона (Android, iOS).

Как снять логи с iOS

Одним из самых распространенных способов для получения логов для приложений iOS является получение с помощью XCode.

XCode — это среда разработки программного обеспечения для платформ macOS и iOS.

Для снятия логов через XCode необходимо:

  • Установить XCode
  • Подключите устройство к Mac
  • Запустить XCode
  • Открыть вкладку «Window» — «Devices and Simulators»
  • Нажать кнопку «View Device Logs»
  • Найти нужный лог-файл и скопировать его в текстовый файл

Также получить логи можно с помощью iMazing (доступно как для Windows, так и для MacOS).

Как снять логи с Андроид

Для того, чтобы снять с Android логи приложения, понадобится Android Studio.

Android Studio — интегрированная среда разработки (IDE) для платформы Android.

Для снятия логов с помощью Android Studio нужно:

  • Установить Android Studio
  • Создать новый проект в «Android Studio» (при создании нового проекта нужно правильно указать версию Android девайса, с которого необходимо снять логи)
  • Включить режим разработчика на Android девайсе
  • Подключить устройство через USB к компьютеру
  • Выбрать девайс в Android Studio
  • Выберите вкладку LogCat
  • Воспроизвести ошибку на девайсе или найти по дате воспроизведения логи (если мы знаем время, когда воспроизводилась проблема)
  • Выделить нужные логи и скопировать их (правой клавишей мыши → Copy или Ctrl+C)
  • Создать файл .txt, добавить в него логи и сохранить их

Также для снятия логов с Android девайсов можно использовать Minimal ADB приложение.

  1. XCode — https://developer.apple.com/xc.
  2. Android Studio — https://developer.android.com/.
  3. iMazing — https://imazing.com/download

How to find the logs on Android Studio?

I have tried to import my project to Android Studio and I got this error. I need to know where I can get the logs.

Consult IDE log for more details (Help | Show Log) 

19.1k 31 31 gold badges 68 68 silver badges 75 75 bronze badges
asked Nov 5, 2013 at 8:49
5,263 6 6 gold badges 48 48 silver badges 65 65 bronze badges
Did you try View > Tool Windows > Android?
Nov 5, 2013 at 8:51

There is an option in your Toolbar to check your logs by enabling (DDMS i.e. android icon) or else in bottom you can check Android>>Devices | logcat.

Nov 5, 2013 at 9:00
@PankajKumar I want to know where to find logs.how this question will be duplicate?
Nov 5, 2013 at 9:02
@Gru it doesnot show anything about y this project has not been integrated?
Nov 5, 2013 at 9:05

In my Windows 10 «Help/Show Log In Explorer» goes to «This Computer» view and it does not go to the directory where the logs are. The logs can be found manually in C:\Users\\.AndroidStudioPreview\system\log

Apr 6, 2018 at 6:03

17 Answers 17

On toolbar -> Help Menu -> Show log in Explorer or Show log in Finder (for Mac users).

It opens log folder, where you can find all logs.

enter image description here

answered Nov 6, 2013 at 10:26
Gabriele Mariotti Gabriele Mariotti
337k 103 103 gold badges 927 927 silver badges 860 860 bronze badges

@Alston is it a good reason to downvote an answer of 3 years ago? In 2.2.3 the Help is in the same position. Check the toolbar, last entry on the right «Help» then «show log in explorer».

Jan 17, 2017 at 12:20
For mac users, that would be Show Log in Finder
Jan 3, 2018 at 12:44

I got the same error, however the log shows no valuable information yet: 2021-12-07 14:32:10,627 [ 156388] ERROR — intellij.openapi.progress.Task — OS: Linux 2021-12-07 14:32:10,628 [ 156389] ERROR — intellij.openapi.progress.Task — Last Action: 2021-12-07 14:32:10,722 [ 156483] INFO — cState$SyncStateUpdaterService — stopTrackingTask(RESOLVE_PROJECT:0) 2021-12-07 14:32:10,726 [ 156487] WARN — e.project.sync.GradleSyncState — Gradle sync failed: Sync failed: reason unknown (55 s 334 ms)

Dec 7, 2021 at 11:36

It works only if you have some project opened (at least it’s true for my Android Studio Chipmunk | 2021.2.1 Patch 2), so you have to open some project or create at least blank project first

Как снимать логи с устройств на Android и iOS: разбираемся с инструментами

Краткая инструкция по чтению и разбору логов мобильных устройств на Android и iOS, а также необходимые инструменты для Windows и MacOS.

Статья подготовлена red_mad_robot и «Альфа-Банком» на основе доклада Senior QA red_mad_robot Ольги Никитиной «Инструменты для снятия логов с Android / iOS устройств. Чтение и разбор» на митапе «QАчественное общение» при поддержке red_mad_robot.

Уровни логирования и что они означают

Для начала разберёмся с логами. Это текстовые файлы, в которых записываются все действия пользователя. Например, какие кнопки он нажимает в приложении и как на это оно реагирует в ответ.

Записи в логах формируются в хронологическом порядке. Самая свежая — внизу.

Есть два вида логов:

  • Crash logs — файл, в котором хранятся записи только об ошибках экстренного завершения программы — по-простому, когда приложение крашнулось.
  • Logs — простые логи, или журнал событий. Это файл, в котором хранятся системные записи и ответы устройства на действие пользователя.

Логи на мобильных устройствах бывают нескольких уровней:

Они представлены по уровню важности — от самого высокого к самому низкому, — и каждый следующий уровень включает в себя предыдущий. Например, VERBOSE содержит в себе логи всех остальных.

Примечание: уровни более применимы к логам на Android, потому что именно там такое разделение встречается чаще.

Рассмотрим подробнее каждый уровень.

Error (ERROR)

На этом уровне информируются ошибки работы системы.

Записи этого уровня требуют быстрого вмешательства разработчика — на такие ошибки нужно реагировать максимально быстро.

Как пример, такая запись в логе:

“ SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length ”

Это ошибка, в которой говорится, что строковый элемент span не может быть пустым.

“ [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] ] ”

Эта системная ошибка сообщает, что происходит утечка памяти при взаимодействии с каким-то элементом или приложением.

Warning (WARN)

На этом уровне отображаются записи, сообщающие о каком-то неожиданном поведении, требующем внимания, или о ситуации, которая незнакома системе.

Например, сообщение ниже — запись из тестового приложения:

“ [OMX.hisi.video.decoder.avc] setting nBufferCountActual to 16 failed: -2147483648 “

Мы пытаемся декодировать запись в какой-то формат, но его нет. Ошибка сообщает о неуспешной попытке настройки видеоплеера в нужном формате.

“ BroadcastQueue: Permission Denial: broadcasting Intent ”

Эта системная ошибка говорит о сбое в работе одного из виджетов на устройстве.

Info (INFO)

На этот уровень приходят записи информационного характера, например о работе системы.

Допустим, такое сообщение об уровне заряда батареи на устройстве:

“ APwBatteryMonitor: screen off start battery: 100 ”

А это сообщение говорит о том, что экран устройства был выключен:

Ещё в логи этого уровня входят запросы от клиента на сервер: хедеры, тело запросов, которые отправляет клиент, и ответы сервера.

okhttp.OkHttpClient: server: nginx/1.15.9

okhttp.OkHttpClient: date: Thu, 23 Sep 2021 19:41:17 GMT

okhttp.OkHttpClient: content-type: application/json

okhttp.OkHttpClient: vary: Accept-Encoding

okhttp.OkHttpClient: strict-transport-security: max-age=15724800; includeSubDomains

Такие записи могут помочь вам в понимании какого-то бага или в разборе задачи при условии, что вы не можете перехватить трафик или не знаете, какие запросы отправляются на бэкенд.

Debug (DEBUG)

Это уровень сообщений, в которых передаётся информация о процессах отладки или шагах работы крупных процессов.

Например, в записи ниже сказано, что пользователь нажимал на кнопку уменьшения или увеличения громкости:

Сначала мы видим запись о самом факте нажатия на кнопку, далее оно расшифровывается подробнее:

Ещё пример: если ваше приложение использует сокет-сессию, то на уровне DEBUG мы можем увидеть, когда сессия начинается и заканчивается:

“ b$b: WebSocket connected ”

Verbose (VERBOSE)

Сообщения такого уровня уточняют или раскрывают действия.

Например, у нас есть служба управления окнами на экране приложения. И на уровне Verbose мы можем увидеть подробности её работы.

WindowManager: Removing Window

На этом уровне мы можем посмотреть системные подробности наших действий. Например, при включении геолокации в записи отобразится текущая геолокация.

GnssLocationProvider: reportLocation Location [. ]

А меняя звук на устройстве, мы увидим, как растёт или падает значение:

AudioManager: getStreamVolume streamType: 3 volume: 10

Каждое нажатие, то есть изменение звука, будет отражаться новым сообщением.

Verbose — уровень самого низкого приоритета. Выбирая такой уровень отображения логов, мы будем видеть записи и со всех предыдущих уровней.

Примечание: разработчики приложения самостоятельно покрывают действия логами, определяют уровни, а также какие сообщения какому из них соответствуют.

Инструменты для снятия логов: Android

Расскажем о трёх способах.

ПервыйLogcat в составе Android Studio, самый известный и широко используемый.

Для снятия логов нам необходимо перевести устройство в режим разработчика/отладки. Для этого нужно:

  • найти в настройках номер нашего билда или ОС (в зависимости от устройства),
  • около десяти раз нажать на эту информацию,
  • при появлении сообщения о том, не хотим ли мы перевести устройство в режим разработчика, нажать «Ок».

Примечание: алгоритм может отличаться в зависимости от производителя устройства, потому что у многих из них свои надстройки на ОС Android.

Дальше подключаем устройство по USB к ПК и устанавливаем Android Studio.
Следующие шаги на скрине:

  1. Выбираем вкладку Logcat (переходим к сообщениям в реальном времени).
  2. В окошке выбираем телефон, с которого снимаем логи.
  3. На этой вкладке выбираем логи определённого приложения. Если нужно снять вообще все логи со всех приложений и системы, эту вкладку стоит не трогать. Рядом с ней можно выбрать уровень логирования (вкладка Verbose на скрине).
  4. В поле поиска, где мы можем фильтровать выдачу, разрешено писать что угодно — от названия пакета до частей вроде fatal.

На скрине видно логи с подключенного устройства.

Второй способвыгрузка логов с самого устройства. Кроме режима разработчика нам нужно подключить устройство к ПК через USB и установить ADB — Android Debug Bridge.

Открываем терминал и пишем две команды.

Первая — adb devices — показывает подключённые устройства, которые видит ADB. В терминале выглядит так:

Название устройства — 7BKDU18504001505

Вводим вторую команду — adb -s название устройства logcat, — которая запускает утилиту Logcat для конкретного устройства. В терминале в реальном времени будут поступать логи.

Как их читать?

  1. В первом столбце — дата и время поступления записи.
  2. Во втором — обозначения уровней логирования. Например, D — это Debug.
  3. В третьем показываются названия инструмента, утилиты, пакета, от которых поступает сообщение, а также расшифровка того, что вообще происходит.

Третий инструментSDK Platform Tools. Процесс его установки практически аналогичен предыдущим двум:

  • переводим телефон в режим разработчика,
  • подключаем к ПК по USB,
  • скачиваем на ПК папку SDK PT (под свою ОС),
  • открываем папку SDK PT в терминале.

Теперь пишем команду ./adb logcat –v threadtime > ./android-debug.log.

В терминале это выглядит так:

Прерываем выполнение команды (например, на Mac это Control+C). Лог добавляется в папку.

В первом столбце — дата и время, во втором — уровни логов, в третьем — указание на то, от какой части системы поступают данные, лог и его расшифровка/подробности

Очень похоже на предыдущий терминал, но файл обновляется, пока в терминале действует команда.

Инструменты снятия логов: iOS

В первую очередь нас интересует xCode — интегрированная среда разработки (IDE), в которую встроен нужный нам инструмент Simulator.

Как использовать инструмент:

  1. Устанавливаем xCode.
  2. В системной строке нажимаем xCode → Open Developer Tools → Simulator.
  3. Устанавливаем приложение.
  4. В самом симуляторе выбираем Debug → Open System Log.

Мы будем видеть логи в реальном времени:

Подобное оформление логов мы уже где-то видели, но построение информации в выдаче немного отличается. Есть дата и время (1) и данные (2) о том, с какого устройства снята информация: имя компьютера, элемент системы, с которого пришло сообщение, и его расшифровка.

Но первый способ работает только с симуляторами. Если необходимо снимать логи с реального устройства, в этом может помочь раздел Devices and Simulators.

Записи можно отфильтровать по конкретному процессу (вашему приложению):

  1. Устанавливаем xCode.
  2. Подключаем устройство к ПК по USB.
  3. Открываем xCode → Windows → Devices and Simulators.

Дальше нажимаем у устройства Open Console и видим панель с названием устройства, информацией о модели и ОС:

1 — все приложения, которые установлены на устройстве, 2 — версия устройства, 3 — пакет приложения устройства

Логи поступают в реальном времени, но их удобно отслеживать:

У нас есть три столбца:

  1. «Время» — время поступления сообщения.
  2. «Процесс» — с какой части системы/приложения пришло сообщение.
  3. «Сообщение» — описание события, сервисная информация.

В инструменте есть поиск для фильтрации выдачи. Ещё есть полезная кнопка «Приостановить» — она останавливает поток логов.

А вот утилита iMazing поможет снимать iOS-логи для тех, у кого установлен Windows. Приложение платное, но часть функциональности доступна бесплатно. Например, за снятие логов устройства платить не нужно.

В меню выбираем «Показать консоль устройства». В открывшемся окне приходят записи логов в реальном времени со всего устройства.

1 — дата и время получения сообщения; 2 — имя телефона, информация, с какой части устройства пришло сообщение, и описание; 3 — поисковая строка для фильтрации выдачи

Ещё одно важное достоинство iMazing — возможность сохранять логи (разумеется, по кнопке «Сохранить»).

Статья подготовлена red_mad_robot и «Альфа-Банком» на основе доклада Senior QA red_mad_robot Ольги Никитиной «Инструменты для снятия логов с Android / iOS устройств. Чтение и разбор» на митапе «QАчественное общение» при поддержке red_mad_robot.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *