Логирование событий

Если вы хотите логировать события библиотеки push-уведомлений, то добавьте в вызов RuStorePushClient.init параметр logger — данный параметр является необязательным для инициализации.

Для этого необходимо реализовать интерфейс Logger:

interface Logger {
 
    fun verbose(message: String, throwable: Throwable? = null)
    fun debug(message: String, throwable: Throwable? = null)
    fun info(message: String, throwable: Throwable? = null)
    fun warn(message: String, throwable: Throwable? = null)
    fun error(message: String, throwable: Throwable? = null)
 
    fun createLogger(tag: String): Logger
}

Если Logger не будет передан, то будет использоваться реализация по умолчанию, использующая AndroidLog. 

public class DefaultLogger(
    private val tag: String? = null,
) : Logger {
    override fun verbose(message: String, throwable: Throwable?) {
        Log.v(tag, message, throwable)
    }
 
    override fun debug(message: String, throwable: Throwable?) {
        Log.d(tag, message, throwable)
    }
 
    override fun info(message: String, throwable: Throwable?) {
        Log.i(tag, message, throwable)
    }
 
    override fun warn(message: String, throwable: Throwable?) {
        Log.w(tag, message, throwable)
    }
 
    override fun error(message: String, throwable: Throwable?) {
        Log.e(tag, message, throwable)
    }
 
    override fun createLogger(tag: String): Logger {
        val newTag = if (this.tag != null) {
            "${this.tag}:$tag"
        else {
            tag
        }
        return DefaultLogger(newTag)
    }
}
Обновлено 20 июня 2023 г.
Was this information helpful?