将rabbitMQ消息传递日志分成不同的日志文件

时间:2015-10-11 13:17:35

标签: java spring logging log4j rabbitmq

我正在使用Spring AMQP RabbitMQ实现Spring Hibernate项目进行消息传递。 rabbitmq配置位于单独的xml中,该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

1 个答案:

答案 0 :(得分:1)

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

代替。

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