frodo icon indicating copy to clipboard operation
frodo copied to clipboard

RxLogSubscriber for subjects or hot observable

Open emakar opened this issue 9 years ago • 1 comments

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)

emakar avatar Mar 24 '16 21:03 emakar

Sorry for the late reply but I will take all this feedback for the next version of frodo.

android10 avatar Dec 05 '16 21:12 android10