【问题排查】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
相关推荐
天天进步20153 小时前
【Nanobrowser源码分析4】交互篇: 从指令到动作:模拟点击、滚动与输入的底层实现
开发语言·javascript·ecmascript
Li_yizYa3 小时前
Redis-常见数据类型及应用场景
java·数据库·redis
麦兜*4 小时前
【springboot】图文详解Spring Boot自动配置原理:为什么@SpringBootApplication是核心?
android·java·spring boot·spring·spring cloud·tomcat
console.log('npc')4 小时前
vue2中子组件父组件的修改参数
开发语言·前端·javascript
码点4 小时前
【无标题】日文字库Japan.ini
开发语言
IT=>小脑虎4 小时前
2026版 Python零基础小白学习知识点【基础版详解】
开发语言·python·学习
rabbit_pro4 小时前
Java使用Mybatis-Plus封装动态数据源工具类
java·python·mybatis
wjs20244 小时前
抽象工厂模式
开发语言
lly2024064 小时前
SVG 模糊效果详解
开发语言
期待のcode4 小时前
Java虚拟机类加载机制
java·开发语言