package org.erlide.runtime.events; import org.erlide.util.ErlLogger; import org.erlide.util.erlang.OtpBindings; import org.erlide.util.erlang.OtpErlang; import com.ericsson.otp.erlang.OtpErlangAtom; import com.ericsson.otp.erlang.OtpErlangObject; import com.google.common.eventbus.Subscribe; public class LogEventHandler extends ErlangEventHandler { public LogEventHandler() { super("log"); } @Subscribe public void handleEvent(final ErlEvent event) { if (!event.getTopic().equals(getTopic())) { return; } final OtpErlangObject data = event.getEvent(); try { final OtpBindings b = OtpErlang.match("{K:a,M}", data); final String kind = ((OtpErlangAtom) b.get("K")).atomValue(); final OtpErlangObject amsg = b.get("M"); ErlLogger.debug("%s: %s", kind, OtpErlang.asString(amsg)); } catch (final Exception e) { ErlLogger.error("erroneous log msg: %s", data); } } }