如何抑制Hazelcast Management Center的重复日志输出?
抑制Tomcat catalina.out中的Hazelcast重复INFO日志
问题背景
Tomcat的catalina.out中持续输出以下Hazelcast INFO级日志,尝试设置System.setProperty("hazelcast.mc.log.level", "ERROR");未生效:
2023-03-19 15:36:17,376 [ INFO] [DisabledLoginCleanupThread] [c.h.w.s.s.i.DisableLoginStrategy]: Starting scheduled disabled login cleanup. 2023-03-19 15:36:17,376 [ INFO] [DisabledLoginCleanupThread] [c.h.w.s.s.i.DisableLoginStrategy]: Finished scheduled disabled login cleanup. 2023-03-19 15:36:17,942 [ INFO] [MetricsStorageDiagnostics] [c.h.w.s.m.MetricsStorageDiagnosticsLogger]: Known time series: 138,514 Tracked minute buckets: 35,312 Number of persistence runs: 360 Total persistence run time: 00:00:11.060 Max persistence run time: 00:00:00.399 Average persistence run time: 00:00:00.030 Last hour average persistence run time: 00:00:00.030 Total persisted minute buckets: 2,110,910 Max persisted minute buckets per run: 35,312 Average persisted minute buckets per run: 5,863 Last hour average persisted minute buckets per run: 5,863 Total dropped data points that arrived when the target minute bucket is no longer tracked, but not yet released(persisted) : 0 Total evicted dangling minute series : 0 Persistent store TTL: 24:00:00 Persistent store size on disk: 538.4 MiB Data point memory compression ratio: 41.65
解决方案
1. 针对日志框架配置(推荐)
这些日志来自com.hazelcast.web.sessions.session.impl.DisableLoginStrategy和com.hazelcast.web.sessions.metrics.MetricsStorageDiagnosticsLogger两个类,直接在项目的日志配置文件中针对这两个类设置ERROR级别即可:
若使用Logback(logback.xml):
<logger name="com.hazelcast.web.sessions.session.impl.DisableLoginStrategy" level="ERROR"/> <logger name="com.hazelcast.web.sessions.metrics.MetricsStorageDiagnosticsLogger" level="ERROR"/>
若使用Log4j2(log4j2.xml):
<Logger name="com.hazelcast.web.sessions.session.impl.DisableLoginStrategy" level="ERROR" additivity="false"> <AppenderRef ref="YourAppenderName"/> </Logger> <Logger name="com.hazelcast.web.sessions.metrics.MetricsStorageDiagnosticsLogger" level="ERROR" additivity="false"> <AppenderRef ref="YourAppenderName"/> </Logger>
2. Hazelcast核心配置调整
在hazelcast.xml或hazelcast.yaml中指定日志级别,确保日志桥接至SLF4J(与项目日志框架对齐):
<hazelcast> <logging type="slf4j"/> <properties> <property name="hazelcast.logging.level">ERROR</property> </properties> <!-- 或针对特定包细化配置 --> <logger name="com.hazelcast.web.sessions" level="ERROR"/> </hazelcast>
3. Tomcat全局日志配置
若需在Tomcat层面控制,修改conf/logging.properties,添加:
com.hazelcast.web.sessions.session.impl.DisableLoginStrategy.level = SEVERE com.hazelcast.web.sessions.metrics.MetricsStorageDiagnosticsLogger.level = SEVERE
无效原因说明
hazelcast.mc.log.level属性仅对独立部署的Hazelcast Management Center生效,而当前是在Tomcat中集成Hazelcast相关模块,因此该属性无法作用于这些日志输出。
内容的提问来源于stack exchange,提问作者Robert Yeager
相关产品推荐
相关产品推荐

