В вашем <project>/<app-module>/build.gradle.kts
dependencies { implementation("ru.ok.tracer:tracer-crash-report:0.2.16") }
Также Tracer поддерживает сбор и анализ нативных крэшей. Если вы хотите собирать крэши случившиеся в нативном коде, нужно подключить соответствующую зависимость:
dependencies { implementation("ru.ok.tracer:tracer-crash-report-native:0.2.16") }
Чтобы Tracer генерировал человекочитаемые стектрейсы, необходимо включить загрузку отладочной информации из нативных библиотек.
Более подробное описание зависимостей и как включить загрузку символо в из библиотек — на странице Быстрый старт
В вашем Application.kt
class MyApplication : Application(), HasTracerConfiguration { override val tracerConfiguration: List<TracerConfiguration> get() = listOf( CrashReportConfiguration.build { // ваши опции }, CrashFreeConfiguration.build { // ваши опции }, ) }
Опции CrashReportConfiguration.Builder
:
setEnabled
— включает/выключает репортинг крэшей. По умолчанию включена, можно не трогать ))setSendAnr
— отключает отправку ANR. По умолчанию включенаsetNativeEnabled
— включает/выключает репортинг нативных крэшей. Значение по умолчанию зависит от того, подключена ли зависимость tracer-crash-report-native
. Если подключена, то и репортинг по умолчанию включен. Если не подключена - выключен. ⚠ Включить репортинг нативных крэшей без подключения соответствующей зависимости не выйдет, а вот выключить репортинг при наличии зависимости - пожалуйста.Опции CrashFreeConfiguration.Builder
:
setEnabled
— включает/выключает подсчет crash free users. По умолчанию выключена!Устаревшие или опасные опции CrashReportConfiguration.Builder
:
setHost
— устарела и будет удалена в версии 0.3.x. Если вам точно действительно надо поменять хост, используйте CoreTracerConfiguration.setHost
setSendLogs
— устарела и ничего не делает, будет удалена в версии 0.3.xsetCountCrashFreeUsers
— устарела и ничего не делает, будет удалена в версии 0.3.x. Вместо нее предоставлена опция CrashFreeConfiguration.Builder.setEnabled
setSendThreadsDump
, setSendAsap
, setMaxNonFatalExceptions
— устарели и ничего не делают, будут удалены в версии 0.3.xУстаревшие или опасные опции CrashFreeConfiguration.Builder
:
setExperimentalMaxSessionsToUpload
— сколько сессий нужно накопить чтобы отправить батч. По умолчанию 10. Только для тестов!setExperimentalMaxSessionTimeSpanToUpload
— как долго копить сессии чтобы отправить батч. По умолчанию 4 часа (в миллисекундах). Только для тестов!setExperimentalUploadSessionsFromYesterday
— отправлять батч если обнаружены вчерашние (или ранее) сессии. По умолчанию включенаДля отправки non-fatals используется метод TracerCrashReport.report(throwable)
// Залоггировать не фатальную ошибку. TracerCrashReport.report(NonFatalException("I'll be ok soon"))
Крэши всегда группируются по общим частям стектрейса. По умолчанию non-fatals тоже, однако есть способ повлиять на эту группировку.
Для того, чтобы все non-fatals попали в одну группу вне зависимости от стектрейса, есть метод report
с параметром issueKey
.
// Залогировать не фатальную ошибку с ключем ISSUE-001 TracerCrashReport.report(NonFatalException("What a terrible failure"), issueKey = "ISSUE-001")
⚠ ВАЖНО! На текущий момент в трейсере есть лимит в 1млн событий в день. Поэтому рекомендуется не злоупотреблять этим методом.
Также к событию можно добавить дополнительную информацию.