Перейти к основному содержимому

Собственное логирование в Tracer SDK - описание HasTracerLogger и TracerLoggerDelegate

к сведению

Информация касается собственного логирования 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)
}
}