【问题排查】easyexcel日志打印Empty row!

问题原因

日志打印​​I/O 操作开销​(如 Log4j 的 FileAppender)会阻塞业务线程,直到日志写入完成,导致接口响应变慢

问题描述

  1. 在线上环境,客户反馈导入一个不到1MB的excel文件,耗时将近5分钟。

问题排查

  1. 发现日志文件有打印超多以下日志:
    WARN DefaultAnalysisEventProcessor:41 - Empty row!

  2. 和客户拿到文件分析后认定是客户导入的文件中存在大量的空行。导致的上述日志疯狂打印,每一行是空都会打印一条,导致接口耗时变慢。

  3. 源码寻找,如图:

  4. 发现这行日志打印需满足日志等级是debug级别的才会打印。嗨,恰巧,由于项目年代久远我司线上环境日志级别是debug,导致了上述问题的发生。

问题解决

修改日志级别为info 避免日志打印。
Log4j日志配置修改方法

复制代码
log4j.logger.com.alibaba.excel.read.processor.DefaultAnalysisEventProcessor=INFO

spring boot项目,日志级别修改方式

复制代码
logging:
  level:
    com.alibaba.excel.read.processor.DefaultAnalysisEventProcessor: INFO
相关推荐
考虑考虑5 小时前
Excel导入时产生特殊字符处理
java·后端·java ee
90后小陈老师5 小时前
PHP 配置默认值失效排查实录:isset 兜底遇上表单空串回填,首页文案是怎么集体消失的
开发语言·php
Scabbards_5 小时前
面试Leetcode - Heap 堆
java·leetcode·面试
程序员清风6 小时前
专业再升级!程序员专属显示器明基RD280UG上手实测!
java·后端·面试
JJJennie7776 小时前
Gemini 3.7 Flash 上线,Google 想让 AI 多干活
开发语言·javascript·ecmascript
wuyk5556 小时前
Python 第三章:列表 List
服务器·开发语言·python
Evand J7 小时前
【MATLAB例程,车联网7】CACC网联车辆协同控制:ACC对比、V2X时延丢包与队列稳定性,附例程下载链接
开发语言·matlab·车联网
Lam Tang7 小时前
APS 系列文章 08
java·代理模式
要努力点7 小时前
Python入门第六课
开发语言·python
萧瑟余晖8 小时前
Java深入解析篇三十三之消息队列
java·开发语言