我正在开发一个 Spring Hibernate 项目,该项目使用 Spring AMQP RabbitMQ 实现进行消息传递。 rabbitmq 配置位于一个单独的 xml 中,该 xml 被导入到根应用程序上下文中。 rabbitmq监听接收器每秒轮询队列一次。重要的日志消息被埋在转储到日志文件中的大量调试级轮询消息之下。
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
关于java - 将rabbitMQ消息日志分离到不同的日志文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33065413/