为什么我在 DEBUG 中有 Transaction Commit null?

Why i have in DEBUG, Transaction Commit null?

我使用 Spring 引导设置了 JMS ActiveMQ,但是在部署应用程序时我有以下消息不会停止。

我觉得很耗内存,尤其是日志文件变大了。

    2019-12-30 22:29:04.005 DEBUG 1318 --- [enerContainer-1] o.a.a.ActiveMQSession
: ID:N-DIGI-35299-1577740804450-1:1:2 Transaction Commit :null
    2019-12-30 22:29:04.006 DEBUG 1318 --- [enerContainer-1] o.a.a.ActiveMQSession
: ID:N-DIGI-35299-1577740804450-1:1:4 Transaction Commit :null
    2019-12-30 22:29:04.006 DEBUG 1318 --- [enerContainer-1] o.a.a.ActiveMQSession
: ID:N-DIGI-35299-1577740804450-1:1:10 Transaction Commit :null
...

以下是我申请的主要相关代码:

application.properties:

spring.activemq.broker-url=failover://tcp://localhost:61616
spring.activemq.user=admin
spring.activemq.password=admin
spring.activemq.pool.enabled=true
spring.activemq.pool.configuration.max-connections=16
spring.activemq.pool.idleTimeout=512
spring.activemq.pool.expiryTimeout=4096

pom.xml:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<dependency>
    <groupId>org.messaginghub</groupId>
    <artifactId>pooled-jms</artifactId>
</dependency>

FeedbackJms.java(即接收方):

@Component
@EnableJms
public class FeedbackJms {
    private static final Logger logger = LoggerFactory.getLogger(FeedbackJms.class);

    @Autowired
    private FeedbackService feedbackService;

    private CountDownLatch latch = new CountDownLatch(1);

    public CountDownLatch getLatch() {
        return latch;
    }

    @JmsListener(destination = "${spring.activemq.mq.feedback.insert}")
    public void recordFeedback(String feedback) {
        logger.debug("received feedback = '{}' ", feedback);
        Feedback mFeedback;
        ObjectMapper mapper = new ObjectMapper();
        // TO IGNORE UNKNOWN PROPERTIES
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        mapper.findAndRegisterModules();
        try{
            mFeedback = mapper.readValue(feedback, Feedback.class);
            mFeedback.setDatetime(LocalDateTime.now());
            feedbackService.addFeedback(mFeedback);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        latch.countDown();
    }
}

发件人:

@Autowired
private JmsTemplate jmsTemplate;

@Override
public void addFeedbackMQ(String feedback) {
    logger.debug("recording feedback='{}'", feedback);
    jmsTemplate.convertAndSend(MQ_FEEDBACK_INSERT, feedback);
}

您需要在log4j.properties中配置activemq的日志级别:

log4j.logger.org.apache.activemq=INFO
log4j.logger.org.apache.activemq.spring=WARN

https://activemq.apache.org/how-can-i-enable-detailed-logging