yshrsmz
02/20/2019, 1:45 AMlogger
as CommonLogger.
And in general depending on concrete class is anti-pattern, so if I were you I would bind to CommonLogger
in JVM.uli
02/20/2019, 7:58 AMyshrsmz
02/20/2019, 9:38 AMbind<AndroidLogger>() with singleton { AndroidLogger() }
bind<CommonLogger>() with provider { instance<AndroidLogger>() }
uli
02/20/2019, 11:29 AMuli
02/20/2019, 11:30 AMuli
02/20/2019, 11:40 AMorg.kodein.di.Kodein$NotFoundException: 2 bindings found that match bind<CommonLogger>() with ?<InjectedLogger>().? { ? }:
bind<CommonLogger>() with provider { AndroidLogger }
bind<AndroidLogger>() with singleton { AndroidLogger }
yshrsmz
02/20/2019, 12:44 PMbind<AndroidLogger>(tag="android") with singleton { AndroidLogger() }
bind<CommonLogger>(tag="common") with provider { instance<AndroidLogger>(tag="android") }
yshrsmz
02/20/2019, 12:48 PMobject InjectedLogger : KodeinGlobalAware {
val logger: CommonLogger by instance(tag="common")
}
you also need to specify “common” tag for CommonLogger’s web/native configuration.yshrsmz
02/20/2019, 2:01 PMuli
02/20/2019, 9:05 PMyshrsmz
02/20/2019, 10:39 PM