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.