log4j2性能很高,但需要正确使用。
低效方式:打印信息时,把全部参数连接为一个字符串作为参数
logger.debug("Entry number: " + i + " is " + String.valueOf(entry[i]));
高效方式:不同参数按方法参数传递给logger
logger.debug("Entry number: {} is {}", i, entry[i]);
二者性能差别很大。具体参见https://logging.apache.org/log4j/log4j-2.2/performance.html
最好的方式是增加debug开关。
if(logger.isDebugEnabled() {
logger.debug("Entry number: " + i + " is " + entry[i].toString());
}
今天run storm topology时,一个有35个并发的bolt增加了一个每分钟打印,却导致影响其他bolt产生的结果。怀疑是打印占用资源,导致整体性能下降。
本文探讨了Log4j2的高效使用方法,对比了低效与高效的日志记录方式,强调了debug开关的重要性,并通过实际案例展示了不当日志记录对系统性能的影响。
1284

被折叠的 条评论
为什么被折叠?



