java

Log4j2 ile Rabbit MQ ya log yazmak

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.