Log4j2 ile rabbit mqya log yazdırmak için basit bir kaç ayarı burada paylaşmaya çalışacağım
log4j2 xml yapılandırmasında packages olarak kullanacağımız plugin olan org.springframework.amqp.rabbit.log4j2 paketini ekliyoruz ve RabbitMQ bilgileirmizi giriyoruz
<Configuration packages="org.springframework.amqp.rabbit.log4j2">
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%d [%t] %-5p (%F:%L) - %m%n"/>
</Console>
<RabbitMQ name="rabbitmq_change"
host="mq.playground.svc.cluster.local" port="5672"
user="fmarslan"
password="fmarslan" exchange="my-exchange"
applicationId="myapplication" routingKeyPattern="change_event"
connectionName="rabbitmq_change_appender"
contentType="text/plain"
contentEncoding="UTF-8"
generateId="false"
deliveryMode="PERSISTENT"
charset="UTF-8"
senderPoolSize="3"
maxSenderRetries="5">
</RabbitMQ>
</Appenders>
<Loggers>
<Logger name="ChangeFieldLogger" level="info">
<AppenderRef ref="rabbitmq_change" />
</Logger>
<Root level="error">
<AppenderRef ref="console" />
</Root>
</Loggers>
</Configuration>
pom içerisine gerekli dependencyleri ekliyoruz burada sizin uygulamanız için uyumlu olan versionları seçmenizde gerekmektedir.
...
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-amqp</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
</dependency>
...
artık aşağıdaki gibi kullanımlarımızda log doğrudan rabbit mq ya ilgili exchange ile gönderilecektir.
...
public static final Log CHANGEFIELDLOGGER = LogFactory.getLog("ChangeFieldLogger");
...
CHANGEFIELDLOGGER.info("{JSON OBJECT}");
...
Detaylı bilgiler
rabbit mq kurulumu için buraya bakabilirsiniz
spring amqp için buraya bakabilirsiniz.