From what I can say, you just need to implement a simple Appender. Sort of:
@Plugin(name="Reporter", category ="Core", elementType="appender", printObject=true) public class ReporterAppender extends AbstractAppender { private ReporterAppender(final String name, final Layout layout) { super(name, null, layout, false); } @Override public void append(final LogEvent event) { final Layout<? extends Serializable> layout = getLayout(); if (layout != null && layout instanceof AbstractStringLayout) { Reporter.log(((AbstractStringLayout) layout).toSerializable(event)); } else { Reporter.log(event.getMessage().getFormattedMessage(); } @PluginFactory public static ReporterAppender createAppender( @PluginAttribute("name") @Required(message = "A name for the Appender must be specified") final String name, @PluginElement("Layout") Layout<? extends Serializable> layout) { return new ReporterAppender(name, layout); } }
source share