-
Notifications
You must be signed in to change notification settings - Fork 102
Description
Currently logging shared hot observable or subject via RxLogObservable could result in unreadable log:
Assume we have a subject returned as observable and we just want to log its emission (and possibly - subscribers count)
Currently it's only possible to annotate a method with RxLogObservable
BehaviorSubject bus = BehaviorSubject.create();
@RxLogObservable Observable bus() {
return bus.asObservable();
}
...
bus.onNext(theEvent);
...
Subscription subscription1 = bus().subscribe()
...
Subscription subscriptionN = bus().subscribe()
And for each Subscriber we'll have a log entry per emission/completion/error, entries are equal though
Frodo => [@Observable#bus() -> onNext() -> theEvent] // <-- subscription1
...
Frodo => [@Observable#bus() -> onNext() -> theEvent] // <-- subscriptionN
RxLogObservable is a neat way for logging observables, however it makes logs totally unreadable if one has several subjects and subscribers for them.
So it would be cool to enhance existent annotation or add a new one to log only subject's (subscriber's) onNext/etc (It seems more natural to log subjects as RxLogSubscriber since we're essentially interested in its onNext invocations, however we cannot annotate single instance with it, it's applicable for class only)