Skip to content

Instantly share code, notes, and snippets.

@HeinrichHartmann
Created December 6, 2013 20:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save HeinrichHartmann/7831348 to your computer and use it in GitHub Desktop.
Save HeinrichHartmann/7831348 to your computer and use it in GitHub Desktop.
ZmqAppender for Log4j. Publishes log messages on a zmq socket.
package net.heinrich-hartmann.gists.ZmqAppender;
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.Layout;
import org.apache.log4j.SimpleLayout;
import org.apache.log4j.spi.LoggingEvent;
import org.jeromq.ZMQ;
/**
* ZmqAppender for Log4j.
*
* Publishes log messages on a zmq socket.
*/
public class ZmqAppender extends AppenderSkeleton {
public static final String DEFAULT_ADDRESS = "tcp://*:50110";
private ZMQ.Socket outSocket;
private Layout layout;
public ZmqAppender(String address, Layout layout) {
outSocket = ZMQ.context().socket(ZMQ.PUB);
outSocket.bind(address);
this.layout = layout;
}
public ZmqAppender() {
this(DEFAULT_ADDRESS, new SimpleLayout());
}
@Override
protected void append(LoggingEvent event) {
outSocket.send(layout.format(event));
}
public void close() {
outSocket.close();
}
public boolean requiresLayout() {
return true;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment