A simple log4j appender to publish messages to a RabbitMQ queue. The appender includes a layout which converts all log messages to JSON objects.
The configuration is simple:
<?xml version="1.0" encoding="UTF-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="rabbitmq" class="com.plant42.log4j.appenders.RabbitMQAppender">
<param name="identifier" value="identifier"/>
<param name="host" value="rabbitmq.whateveryourhostis.com"/>
<param name="port" value="5672"/>
<param name="username" value="guest"/>
<param name="password" value="guest"/>
<param name="virtualHost" value="/"/>
<param name="exchange" value="log4j-exchange"/>
<param name="type" value="direct"/>
<param name="durable" value="false"/>
<param name="queue" value="log4j-queue"/>
<param name="routingKey" value=""/>
<layout class="com.plant42.log4j.layouts.JSONLayout" />
</appender>
<root>
<level value="ERROR"/>
<appender-ref ref="rabbitmq"/>
</root>
</log4j:configuration
<?xml version="1.0" encoding="UTF-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="rabbitmq" class="com.plant42.log4j.appenders.RabbitMQAppender">
<param name="identifier" value="identifier"/>
<param name="host" value="rabbitmq.whateveryourhostis.com"/>
<param name="port" value="5672"/>
<param name="username" value="guest"/>
<param name="password" value="guest"/>
<param name="virtualHost" value="/"/>
<param name="exchange" value="log4j-exchange"/>
<param name="type" value="direct"/>
<param name="durable" value="false"/>
<param name="queue" value="log4j-queue"/>
<param name="routingKey" value=""/>
<layout class="com.plant42.log4j.layouts.ElasticSearchJSONLayout">
<param name="index" value="logging" />
<param name="type" value="errors" />
</layout>
</appender>
<root>
<level value="ERROR"/>
<appender-ref ref="rabbitmq"/>
</root>
</log4j:configuration
log4j.appender.rabbitmq=com.plant42.log4j.appenders.RabbitMQAppender
log4j.appender.rabbitmq.identifier=identifier
log4j.appender.rabbitmq.host=rabbitmq.whateveryourhostis.com
log4j.appender.rabbitmq.port=5672
log4j.appender.rabbitmq.username=guest
log4j.appender.rabbitmq.password=guest
log4j.appender.rabbitmq.virtualHost=/
log4j.appender.rabbitmq.exchange=log4j-exchange
log4j.appender.rabbitmq.type=direct
log4j.appender.rabbitmq.durable=false
log4j.appender.rabbitmq.queue=log4j-queue
log4j.appender.rabbitmq.layout=com.plant42.log4j.layouts.JSONLayout