当前位置: 首页 > web >正文

【问题排查】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
http://www.xdnf.cn/news/6693.html

相关文章:

  • DeepSearch代表工作
  • 时钟产生的公共模块示例
  • Java 泛型与类型擦除:为什么解析对象时能保留泛型信息?
  • 随笔:hhhhh
  • Redisson 四大核心机制实现原理详解
  • 涂色不踩雷:如何优雅解决 LeetCode 栅栏涂色问题
  • Vue3项目使用ElDrawer后select方法不生效
  • 突围“百机大战”,云轴科技ZStack智塔获IDC中国AI大模型一体机推荐品牌
  • 第五章:Linux用户管理
  • 【无标题】威灏光电哲讯科技MES项目启动会圆满举行
  • leetcode 57. Insert Interval
  • Node.js 同步加载问题详解:原理、危害与优化策略
  • Spring Cloud动态配置刷新:@RefreshScope与@Component的协同机制解析
  • Gitee DevOps:中国企业数字化转型的加速引擎
  • UNiAPP地区选择
  • 解码国际数字影像产业园:成都高品质办公楼宇
  • OpenCV阈值处理完全指南:从基础到高级应用
  • 5G行业专网部署费用详解:投资回报如何最大化?
  • Zephyr OS Nordic芯片的Flash 操作
  • 提权脚本Powerup命令备忘单
  • 从小区到商场再到校园,AI智能分析网关V4高空抛物检测方案全场景护航
  • Spring Boot 封装 MinIO 工具
  • DDS(数据分发服务) 和 P2P(点对点网络) 的详细对比
  • [QMT量化交易小白入门]-五十四、核心资产ETF轮动目前年化只有74%了,在过滤掉当天止损,当天买入的之后
  • Java 21 + Spring Boot 3.5:AI驱动的高性能框架实战
  • require/exports 或 import/export的联系和区别,各自的使用场景
  • 基于Rust语言的Rocket框架和Sqlx库开发WebAPI项目记录(二)
  • Expo项目在本地打包apk的问题
  • Vue主题色切换实现方案(CSS 变量 + 类名切换)
  • 【前端】[vue3] [uni-app]使用 vantUI 框架