【问题排查】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
相关推荐
Ysouy3 分钟前
Spring Data Elasticsearch 全流程学习教程
java·spring·elasticsearch
沪飘大军4 分钟前
goldRush-专门分析黄金的投资理财agent
java·开发语言·elasticsearch
鹏易灵17 分钟前
C++——2.常量与 const、constexpr 初识详解
java·开发语言·c++
qq_4523962320 分钟前
第十三篇:《K8s 安全基础:RBAC、ServiceAccount、Pod Security》
java·安全·kubernetes
神仙别闹32 分钟前
基于C++ 实现 BP 神经网络
开发语言·c++·神经网络
张某布响丸辣44 分钟前
Spring AI 极简入门:Java 开发者快速上手 AI 开发
java·人工智能·spring·springai
java1234_小锋1 小时前
请描述 Spring Boot 的启动流程,包括 SpringApplication 的初始化和 run 方法的核心步骤。
java·数据库·spring boot
疯狂成瘾者1 小时前
Java 集合 LinkedList 详解:链表结构、常用方法和队列使用
java·开发语言·链表
云梦泽࿐้1 小时前
变量与数据类型:Python世界的基石
开发语言·python