Собственное логирование Tracer

Информация касается собственного логирования Tracer SDK. Никакого отношения к тому, что SDK отправляет на сервер она не имеет. Собственное логирование служит только для самого Tracer SDK и/или его интеграции в ваш проект.

Описание HasTracerLogger и TracerLoggerDelegate

Трейсер осуществляет все внутреннее логирование через интерфейс TracerLoggerDelegate. Для того, чтобы подменить мезанизм логирования, реализуйте HasTracerLogger в вашем приложении.

В том случае, если вы хотите всего лишь поменять уровень логирования, можно создать экземпляр DefaultTracerLoggerDelegate:

class MyApplication : Application, HasTracerLogger {
    override val tracerLoggerDelegate: TracerLoggerDelegate
        get() = DefaultTracerLoggerDelegate(
            minLogPriority = Log.VERBOSE,
        )
}
Полностью переопределить механизм логирования можно в своей реализации TracerLoggerDelegate:
class MyApplication : Application, HasTracerLogger {
    override val tracerLoggerDelegate: TracerLoggerDelegate
        get() = MyLoggerDelegate()
}
 
class MyLoggerDelegate : TracerLoggerDelegate {
    // Начиная с какого уровня логировать события. Используютя константы из android.util.Log
    // По умочанию Log.DEBUG
    override val minLogPriority: Int
        get() = Log.VERBOSE
     
    // Основной метод логирования
    //
    // priority - уровень логнирования. Используютя константы из android.util.Log
    // msg - опциональное сообщение.
    // tr - опциональное исключение.
    override fun println(priority: Int, msg: String?, tr: Throwable?) {
        // тут ваш код логирования
        TODO()
 
        // опционально переправить во встроенную реализацию
        // будет отправлено в android logcat с тэгом ru.ok.tracer
        DefaultTracerLoggerDelegate.println(priority, msg, tr)
    }
}

Обновлено 31 октября 2023 г.
Was this information helpful?