В файле, где вы определяете функцию расширения, также определите «singleton» object
для хранения вашего экземпляра restService
, создайте для него установщик и сослаться на него из функции регистратора.
private object ServiceHolder {
var restService: RestService
}
fun Timber.setRestService(restService: RestService) {
ServiceHolder.restService = restService
}
fun Timber.serverLogDebug(log: String) {
ServiceHolder.restService.log(log)
}
Теперь вы можете «статически внедрить» свой экземпляр службы, позвонив по номеру Timber.setRestService
, где вы сажаете древесину DebugTree
.
Примечание. Если вы хотите регистрироваться на сервере каждый раз, когда вы регистрируетесь (или каждый раз, когда вы регистрируете событие определенного уровня), вам лучше создать пользовательский Timber.Tree
.