Не первый раз встречаю в примерах для Firemonkey код:
Log.d(‘Main form alive’);
Я понял, что это логирование, но куда именно это пишется и где искать файл лога?? Спасибо!
Ссылка на комментарий
1 ответ на этот вопрос
- Сортировать по голосам
- Сортировать по дате
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Источник: fire-monkey.ru
Русские Блоги
Анализ системы журналов Android10.0 (1) -logd, описание инструкций logcat, классификация и атрибуты- [Android Learning Road]
Резюме: в этом разделе в основном объясняются инструкции, связанные с logd и logcat, классификация журналов и общие атрибуты журналов системы ведения журналов Android10.0.
Нашел причину повышенной разрядки батареи в своем телефоне. Процесс Logd, проверьте у себя.
Чтение статьи занимает около 15 минут.
Первая статья была опубликована в публичном аккаунте WeChat: Big Cat Play.
Сосредоточьтесь на анализе исходного кода на уровне системы Android, дизайне платформы Android, добро пожаловать, подписывайтесь на меня, спасибо!
Цикл статей:
1 Обзор
При разработке программ ведение журнала является незаменимым методом отладки, как и разработка Android.
При разработке Android мы пишем журналы с помощью LOGD SLOGD и других методов, а затем читаем связанные журналы с помощью logcat, но как журналы записываются и читаются, и каковы лежащие в основе операции, иногда не глубоко изучение.
Этот раздел посвящен анализу принципов чтения и записи журналов Android с нижнего уровня исходного кода.
До Android 5.0 (Android-L) журнал сохранялся в кольцевом буфере ядра. После Android 5.0 журнал сохранялся в пользовательском пространстве и доступ к нему осуществлялся через Socket.
После Android 5.0 был представлен демон Logd для выполнения операций чтения и записи журнала.
Принцип раннего кольцевого буфера ядра можно найти в «Анализе исходного кода регистратора драйвера системы регистрации Android, Ло Шэнъян».
В этом разделе в основном анализируются связанные принципы реализации logd и logcat.
2. Основной исходный код
/frameworks/base/core/java/android/util/Log.java /frameworks/base/core/java/android/util/SLog.java /frameworks/base/core/java/android/util/EventLog.java /frameworks/base/core/jni/android_util_Log.cpp /system/core/logd/main.cpp /system/core/logd/LogReader.cpp /system/core/logd/LogWriter.java /system/core/logcat/logcat.cpp /system/core/liblog/logd_writer.cpp /system/core/liblog/logd_reader.cpp
3. Описание инструкций, связанных с logcat
Подключите мобильный телефон к компьютеру, установите драйвер adb, откройте режим разработчика, выберите «Отладка по USB», можно выполнить команду adb
Что такое лог (log) программы
3.1 Синтаксис командной строки
Чтобы запустить Logcat через оболочку adb, обычно используется следующее:
3.2 Инструкции
Вы можете использовать «adb logcat —help», чтобы увидеть команды, поддерживаемые logcat.
Для получения дополнительной информации см. «Инструмент командной строки Logcat»
3.3 Выходные данные фильтрации журнала
Журналы Android делятся наСледующие 7 уровней:
- V: подробный (низкий приоритет) — (подробный: 2)
- D: Отладка — (Отладка: 3)
- I: Информация — (Информация: 4)
- W: Предупреждение — (Предупреждение: 5)
- E: Ошибка — (Ошибка: 6)
- F: серьезная ошибка — (фатальный: 7)
- S: Без звука (высший приоритет, никогда ничего не выводить) — (Без звука)
При отладке журналов мы можем управлять выводом журналов на разных уровнях.
Ниже приводится нормальный вывод журнала Android.
Журнал:02-05 12:44:15.357 17533 17545 D ActivityThread: caller system = false
Мы можем использовать фильтры для вывода только логов ниже соответствующего уровня:
1) Например: adb logcat *: I
Значение команды: выводить журналы с уровнем журнала выше Info, то есть выводятся только журналы Info, Error, Fatal и Silent, но журналы Debug и Verbose не выводятся.
2) Например: adb logcat ActivityManager: E ActivityThread: I *: S
Значение инструкции: это выражение подавляет все другие журналы, кроме сообщений журнала, помеченных как «ActivityManager» с приоритетом не ниже, чем «Ошибка», и сообщений журнала, помеченных как «ActivityThread» с приоритетом не ниже «Информация». Новости.
3) Например: adb logcat ActivityThread: E *: S
Значение команды: выводятся только журналы с меткой ActivityThread, а уровень журнала больше или равен Error, то есть выводятся только журналы Error и Fatal of ActivityThread
3.4 Формат вывода журнала
Помимо маркировки и приоритета, сообщения журнала также содержат множество полей метаданных. Вы можете изменить формат вывода сообщений, чтобы они отображали определенные поля метаданных. Для этого вы можете использовать параметр -v и указать один из следующих поддерживаемых форматов вывода.
- краткое: отображает приоритет, тег и PID процесса, отправившего сообщение.
- long: отображать все поля метаданных и отдельные сообщения пустыми строками.
- процесс: отображать только PID.
- raw: отображать необработанные сообщения журнала, не содержащие других полей метаданных.
- tag: только отображение приоритета и тега.
- thread :: Старый формат, в котором отображается приоритет, PID и TID потока, отправившего сообщение.
- threadtime (по умолчанию): отображает дату, время вызова, приоритет, тег, PID и TID потока, отправившего сообщение.
- время: отображает дату, время вызова, приоритет, флаг и PID процесса, отправившего сообщение.
инструкция: [adb] logcat [-v ]
Например:adb logcat -v threadtime
нота:-v может использовать только один формат за раз, формат времени потока по умолчанию может удовлетворить наши текущие потребности
3.5 Буфер журнала
Система ведения журнала Android резервирует несколько кольцевых буферов для сообщений журнала, и не все сообщения журнала отправляются в кольцевой буфер по умолчанию. Чтобы просмотреть другие сообщения журнала, вы можете запустить команду logcat с параметром -b, чтобы запросить просмотр альтернативного кольцевого буфера. Вы можете просмотреть любой из следующих альтернативных буферов:
- радио: просмотр буфера, содержащего сообщения, относящиеся к беспроводным устройствам / телефонам.
- events: просмотр интерпретированных сообщений буфера событий двоичной системы.
- main: просмотр буфера основного журнала (по умолчанию), исключая системные сообщения и сообщения журнала сбоев.
- система: просмотр буфера системного журнала (по умолчанию).
- сбой: просмотр буфера журнала сбоев (по умолчанию).
- все: просмотреть все буферы.
- по умолчанию: основной, системный и аварийный буферы отчетов.
Использование 1:adb logcat -b main
Описание 1:Приведенная выше команда выводит журнал только основного буфера.
Использование 2:adb logcat -b main,radio,system
Описание 2:Приведенная выше команда выводит журналы трех буферов: основного, радио и системного.
4. Описание атрибутов, связанных с системой журналов
setprop log.tag.MyApp D
Он используется для установки уровня TAG журнала приложения, выше — журнал отладки вывода MyApp, а основным элементом управления является журнал, управляемый isLoggable (MyApp, Debug)
После ручной настройки перезагрузка не удалась
Запустите демон аудита selinux
Информация аудита selinux отправляется в журнал dmesg
узел cat «/ proc / kmsg», используемый для чтения журнала ядра
Размер по умолчанию всех буферных областей журнала, по умолчанию 256 КБ, можно изменять в реальном времени, перезапуск недопустим.
Изменить временную метку журнала, можно изменить в реальном времени, перезапуск недопустим
Действует ли черный и белый список журнала, отключение недействительно, а включение действует
Включите статистику logcat -S и включите в вывод статистическую информацию, чтобы помочь вам идентифицировать и найти спамеров в журналах
Измените временную метку журнала, которая может быть изменена только при компиляции версии или изменена после рутирования телефона, и перезагрузка продолжит действовать.
Размер по умолчанию для всех буферных областей журнала, по умолчанию — 256 КБ, который можно изменить только при компиляции версии или после рутирования телефона, и перезагрузка продолжит действовать.
Размер буфера основного журнала, по умолчанию 256 КБ.
Размер буфера системного журнала, по умолчанию 256 КБ.
Независимо от того, действует ли черный и белый список журнала, отключение недопустимо, а включение действует.
Прочтите черный и белый список через adb logcat -p;
Установите черный и белый список через logcat -P » и управление через PID UID
setprop persist.log.tag Debug
Управляйте выводом журнала над отладкой. Настройка вступает в силу только после того, как версия предварительно создана или внедрена, и перезапуск также действует.
setprop ro.logd.kernel true
Управляйте выводом журнала ядра в буфер logd и загружайте его через lgocat
setprop ro.logd.auditd true
Управляйте выводом журнала selinux в буфер журнала и загружайте его через lgocat
Когда мы находимся в ежедневной отладке или тестировании CTS, мы сталкиваемся с потерей или неполнотой журнала. Основная причина заключается в том, что объем журнала большой, но буфер журнала мал. В настоящее время нам нужно только увеличить буфер журнала.
способ 1:setprop ro.logd.size 5120 т.е. отрегулируйте буфер журнала до 5M
Способ 2:Режим разработчика -> Размер буфера регистрации -> Выберите соответствующий размер буфера, вы можете выбрать 5 размеров, например 64K -16M
5. Классификация журналов
Журналы на Android 10.0 разделены на 8 категорий:
Главный буфер журнала, который является единственным буфером журнала, доступным для приложения. Интерфейс android.util.Log предоставляется на уровне инфраструктуры приложения для записи журналов в и из драйвера журнала Logger через библиотеку liblog. Библиотека времени выполнения предоставляет макрос LOGV, LOGD, LOGI, LOGW и LOGE используются для записи журналов основного типа.
Просмотрите журнал, содержащий сообщения, связанные с беспроводным устройством / телефоном, вы можете вызвать android.telephony.Rlog для печати
Журналы событий типа используются для диагностики системных проблем. Интерфейс android.util.EventLog предоставляется на уровне инфраструктуры приложения для записи журналов в драйвер журнала Logger и из него через библиотеку liblog. Библиотека времени выполнения предоставляет макросы LOG_EVENT_INT, LOG_EVENT_LONG, LOG_STRING Используется для записи журналов типов событий.
Тип журнала системы — системный уровень. Интерфейс android.util.SLog предоставляется на уровне инфраструктуры приложения для записи журналов в драйвер журнала Logger и из него через библиотеку liblog. Библиотека времени выполнения предоставляет макросы SLOGV, SLOGD, SLOGI, SLOGW, SLOGE используется для записи журналов системного типа.
Буфер журнала сбоев приложения или процесса
Буфер журнала статистики
Источник: russianblogs.com
Процесс logd разряжает батарею | Встроенная защита «Галереи» Xiaomi
В смартфонах под управлением Android, даже в момент когда вы ими не пользуетесь, в фоновом режиме продолжают исполнять свои обязанности множество процессов, без которых нормальное функционирование наших гаджетов было бы просто невозможно.
Но некоторые из них абсолютно не нужны обычным пользователям и не несут никакой пользы, однако их фоновая активность (работа проще говоря) является причиной того, что телефон быстро разряжается.
Об одном из таких процессов и пойдёт речь в сегодняшней статье, но сначала я бы хотел поделиться одной очень полезной (на мой взгляд) настройкой приложения «Галерея» на смартфонах Xiaomi.
Встроенная защита «Галереи»
Если вы размещаете фотографию (или видео) в социальной сети, делитесь ею со своим другом, загружаете в одно из облачных хранилищ, данные о том, где и когда она была сделана, на какой телефон, и так далее, передаются вместе с ней.
А теперь представьте объём данных, который вы передали разработчикам различных сервисов и приложений. Но не все владельцы смартфонов Xiaomi знают, что в стандартной «Галерее» есть две настройки, которые могут решить задачу сохранения приватности.
Заходите в «Галерею» и нажимаете на три точки, после чего следуете в пункт «Настройки». Далее в разделе «Отправить» находите «Безопасный доступ», заходите и активируете два переключателя назначение которых не требует пояснений.
Таким образом все фото в памяти вашего смартфона по-прежнему будут содержать все необходимые данные, а при отправке через кнопку «Поделиться» будет передаваться только изображение.
logd — что это и почему разряжает батарею
На разных смартфонах этот процесс может иметь несколько названий: loge, logw, logi, logd и в редких случаях logv. Каждый из этих процессов отвечает за сбор информации о состоянии телефона и работе всех установленных приложений.
Чем чаще система будет записывать данные в специально созданные файлы, тем больше будет разряжаться батарея смартфона и если вы замечаете в статистике расхода аккумулятора один из перечисленных выше процессов, нужно сделать следующее (покажу на примере Xiaomi).
Заходите в «Настройки» —> О телефоне —> десять раз нажимаете на «Версия MIUI», до появления надписи «Вы стали разработчиком». Далее заходите в пункт «Расширенные настройки» —> Для разработчиков.
Находите строчку «Буфер журнала» и выставляете значение «Отключен». Затем в строке «Уровень журнала» выбирает «Off». После этого находите «Трассировка системы» и отключаете функцию «Записывать действия приложений, доступных для отладки».
После этого необходимо перезагрузить смартфон и процесс сбора информации о вашем устройстве не будет оказывать никакого влияния на разряд батареи смартфона.
Надеюсь статья заслуживает вашего лайка и комментария
Источник: dzen.ru