我写了下面的配置:Spring PollableChannel - 无法将loggingEnabled设置为false?
@Slf4j
@Configuration
@EnableConfigurationProperties(BatchProperties.class)
public class BatchConfiguration {
@Autowired
private BatchProperties properties;
@Bean
public PollableAmqpChannel testingChannel(final RabbitTemplate rabbitTemplate) {
final PollableAmqpChannel channel = new PollableAmqpChannel(properties.getQueue(), rabbitTemplate);
channel.setLoggingEnabled(false);
return channel;
}
@Bean
@ServiceActivator(inputChannel = "testingChannel", poller = @Poller(fixedRate = "1000", maxMessagesPerPoll = "1"))
public MessageHandler messageHandler(final RabbitTemplate rabbitTemplate) {
return message -> {
log.info("Received: {}", message);
rabbitTemplate.convertAndSend(properties.getQueue(), message);
};
}
}
消息被成功读取和重新排队,但我不断收到以下消息:
调用带有上PollableAmqpChannel超时值接收。由于没有支持接收超时,所以 超时将被忽略。
我正在使用Spring Boot 1.5.3.RELASE。在AbstractAmqpChannel
类
@Override
public void setLoggingEnabled(boolean loggingEnabled) {
this.loggingEnabled = loggingEnabled;
}
:
我把一个断点。它被调用'false'(因为它应该根据我的配置),然后每次轮询消息时它都会被再次调用,并且它被设置为'true'。
我检查了哈希码,它似乎是我的bean,但'loggingEnabled'被重置为每个消息'真'。
我的配置有问题吗?我该如何解决这个问题?
我想过把日志记录设置为WARN,只是想知道发生了什么。谢谢。 – aturkovic