Собственное логирование в 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)
}
}