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

ВНИМАНИЕ! Данная статья касается собственного логирование 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) } }