禁用Spring Boot WebSocket MessageBroker日志的INFO级别记录

5

我有一个使用SockJs启用了Websocket的Spring Boot应用程序。一切都很好,但它在控制台中不断记录以下消息。

2017-09-19 11:04:48.164  INFO 8856 --- [MessageBroker-4] o.s.w.s.c.WebSocketMessageBrokerStats    : WebSocketSession[1 current WS(1)-HttpStream(0)-HttpPoll(0), 3 total, 0 closed abnormally (0 connect failure, 0 send limit, 0 transport error)], stompSubProtocol[processed CONNECT(3)-CONNECTED(3)-DISCONNECT(0)], stompBrokerRelay[null], inboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 45], outboundChannelpool size = 0, active threads = 0, queued tasks = 0, completed tasks = 22], sockJsScheduler[pool size = 4, active threads = 1, queued tasks = 2, completed tasks = 65909]

日志的重要性是什么,我如何只禁用这种类型的日志记录?


您可以将日志级别升级为ERROR/WARN以禁用INFO日志。 - Sachin Gupta
我希望仅针对此项禁用INFO日志,而不是其他内容。 - BiJ
2个回答

8

请在application.properties中使用以下配置:

logging.level.org.springframework.web.socket.config.WebSocketMessageBrokerStats = ERROR

这将升级此特定类别的日志记录。


1
这个会起作用,但是记录它的计划任务仍将在后台运行。应该禁用它以防止不必要的资源使用。 - Dino Prašo

3
我希望根据@Dino的评论改进此答案,因为这个解决方案确实没有显示日志,但它并没有禁用任务,也没有阻止不必要的资源使用。
为了防止不必要的资源使用,请使用以下实现:
@Configuration
public class WebSocketLoggingConfigurer {

    @Autowired
    private WebSocketMessageBrokerStats webSocketMessageBrokerStats;

    @PostConstruct
    public void init() {
        webSocketMessageBrokerStats.setLoggingPeriod(0);
    }

}

现在不需要使用 application.properties 来修改日志级别。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接