1

I am working on a Spring Hibernate project with Spring AMQP RabbitMQ implementation for messaging. The rabbitmq configuration is in a separate xml which gets imported into the root application context. The rabbitmq listener receiver polls the queue every second. The important log messages get buried under the truckloads of DEBUG-level polling messages being dumped into the log file.

2015-10-11 18:12:02.0031 DEBUG SimpleAsyncTaskExecutor-1 org.springframework.amqp.rabbit.listener.BlockingQueueConsumer – Retrieving delivery for Consumer: tags=[[amq.ctag-p4K9s4EoXAbxKWufSzX_-w]], channel=Cached Rabbit Channel: AMQChannel(amqp://guest@127.0.0.1:5672/,1), acknowledgeMode=AUTO local queue size=0
2015-10-11 18:12:03.0032 DEBUG SimpleAsyncTaskExecutor-1 org.springframework.amqp.rabbit.listener.BlockingQueueConsumer – Retrieving delivery for Consumer: tags=[[amq.ctag-p4K9s4EoXAbxKWufSzX_-w]], channel=Cached Rabbit Channel: AMQChannel(amqp://guest@127.0.0.1:5672/,1), acknowledgeMode=AUTO local queue size=0

Is there a way to separate out this polling logging into a different file or stop it from polluting the logs?

I am using log4j for logging; Configuration below.

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\Users\\xxx\\xxxx.log
log4j.appender.file.MaxFileSize=2MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSSS} %p %t %c \u2013 %m%n


# Root logger option
log4j.rootLogger=DEBUG, file, stdout
underdog
  • 4,447
  • 9
  • 44
  • 89

1 Answers1

1

add this statements (I omitted the full configuration for the second file logger file2)

log4j.appender.file2=org.apache.log4j.RollingFileAppender
log4j.appender.file2.File=C:\\Users\\xxx\\other.log
...

log4j.logger.org.springframework.amqp.rabbit.listener.BlockingQueueConsumer=DEBUG, file2
log4j.additivity.org.springframework.amqp.rabbit.listener.BlockingQueueConsumer=false

this will put the log entries from org.springframework.amqp.rabbit.listener.BlockingQueueConsumer to an other log file.


If you do not want to have this logs at all, then use

log4j.logger.org.springframework.amqp.rabbit.listener.BlockingQueueConsumer=WARN

instead.

@see: log4j: Log output of a specific class to a specific appender

Community
  • 1
  • 1
Ralph
  • 118,862
  • 56
  • 287
  • 383