将 rabbitMQ 消息日志分离到不同的日志文件中

Separating rabbitMQ messaging logs into a different log file

我正在使用 Spring AMQP RabbitMQ 实现消息传递的 Spring Hibernate 项目。 rabbitmq 配置在一个单独的 xml 中,它被导入到根应用程序上下文中。 rabbitmq 侦听器接收器每秒轮询一次队列。重要的日志消息被埋没在被转储到日志文件中的大量 DEBUG 级轮询消息之下。

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

有没有办法将此轮询日志分离到不同的文件或阻止它污染日志?

我正在使用 log4j 进行日志记录;配置如下。

# 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

添加此语句(我省略了第二个文件记录器的完整配置 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

这会将 org.springframework.amqp.rabbit.listener.BlockingQueueConsumer 中的日志条目放入另一个日志文件。


如果您根本不想拥有此日志,请使用

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

相反。

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