Log receivers of event.
This commit is contained in:
parent
9a1d7fd512
commit
785a8f21de
3 changed files with 59 additions and 44 deletions
57
app/src/main/java/com/squareup/otto/LoggingBus.java
Normal file
57
app/src/main/java/com/squareup/otto/LoggingBus.java
Normal file
|
@ -0,0 +1,57 @@
|
|||
package com.squareup.otto;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
import info.nightscout.androidaps.events.Event;
|
||||
|
||||
public class LoggingBus extends Bus {
|
||||
private static Logger log = LoggerFactory.getLogger(LoggingBus.class);
|
||||
|
||||
public LoggingBus(ThreadEnforcer enforcer) {
|
||||
super(enforcer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void post(Object event) {
|
||||
if (event instanceof DeadEvent) {
|
||||
log.debug("Event has no receiver: " + ((DeadEvent) event).event + ", source: " + ((DeadEvent) event).source);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(event instanceof Event)) {
|
||||
log.error("Posted event not an event class: " + event.getClass());
|
||||
}
|
||||
|
||||
log.debug("<<< " + event);
|
||||
try {
|
||||
StackTraceElement caller = new Throwable().getStackTrace()[1];
|
||||
String className = caller.getClassName();
|
||||
className = className.substring(className.lastIndexOf(".") + 1);
|
||||
log.debug(" source: " + className + "." + caller.getMethodName() + ":" + caller.getLineNumber());
|
||||
} catch (RuntimeException e) {
|
||||
log.debug(" source: <unknown>");
|
||||
}
|
||||
|
||||
super.post(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dispatch(Object event, EventHandler wrapper) {
|
||||
try {
|
||||
log.debug(">>> " + event);
|
||||
Field methodField = wrapper.getClass().getDeclaredField("method");
|
||||
methodField.setAccessible(true);
|
||||
Method targcetMethod = (Method) methodField.get(wrapper);
|
||||
String className = targcetMethod.getDeclaringClass().getSimpleName();
|
||||
String methodName = targcetMethod.getName();
|
||||
log.debug(" receiver: " + className + "." + methodName);
|
||||
} catch (ReflectiveOperationException e) {
|
||||
log.debug(" receiver: <unknown>");
|
||||
}
|
||||
super.dispatch(event, wrapper);
|
||||
}
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
package info.nightscout.androidaps;
|
||||
|
||||
import com.squareup.otto.Bus;
|
||||
import com.squareup.otto.DeadEvent;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import info.nightscout.androidaps.events.Event;
|
||||
|
||||
class LoggingBus extends Bus {
|
||||
private static Logger log = LoggerFactory.getLogger(LoggingBus.class);
|
||||
|
||||
private final Bus delegate;
|
||||
|
||||
public LoggingBus(Bus bus) {
|
||||
delegate = bus;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void post(Object event) {
|
||||
if (event instanceof DeadEvent) {
|
||||
log.debug("Event has no receiver:" + ((DeadEvent) event).event + ", source: " + ((DeadEvent) event).source);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(event instanceof Event)) {
|
||||
log.error("Posted event not an event class: " + event.getClass());
|
||||
}
|
||||
|
||||
log.debug("Event posted: " + event);
|
||||
try {
|
||||
StackTraceElement caller = new Throwable().getStackTrace()[1];
|
||||
String className = caller.getClassName();
|
||||
className = className.substring(className.lastIndexOf(".") + 1);
|
||||
log.debug(" source: " + className + "." + caller.getMethodName() + ":" + caller.getLineNumber());
|
||||
} catch (RuntimeException e) {
|
||||
log.debug(" source: <unknown>");
|
||||
}
|
||||
delegate.post(event);
|
||||
}
|
||||
}
|
|
@ -13,6 +13,7 @@ import com.crashlytics.android.answers.Answers;
|
|||
import com.crashlytics.android.answers.CustomEvent;
|
||||
import com.j256.ormlite.android.apptools.OpenHelperManager;
|
||||
import com.squareup.otto.Bus;
|
||||
import com.squareup.otto.LoggingBus;
|
||||
import com.squareup.otto.ThreadEnforcer;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
|
@ -104,8 +105,7 @@ public class MainApp extends Application {
|
|||
log.info("Version: " + BuildConfig.VERSION_NAME);
|
||||
log.info("BuildVersion: " + BuildConfig.BUILDVERSION);
|
||||
|
||||
Bus bus = new Bus(ThreadEnforcer.ANY);
|
||||
sBus = Config.logEvents ? new LoggingBus(bus) : bus;
|
||||
sBus = Config.logEvents ? new LoggingBus(ThreadEnforcer.ANY) : new Bus(ThreadEnforcer.ANY);
|
||||
|
||||
sInstance = this;
|
||||
sResources = getResources();
|
||||
|
|
Loading…
Reference in a new issue