首页 > 其他分享 >Log4j疯狂写日志问题排查 | 京东云技术团队

Log4j疯狂写日志问题排查 | 京东云技术团队

时间:2023-08-14 12:34:32浏览次数:41  
标签:配置文件 log4j 包内 jar Log4j 磁盘 日志 京东

一、问题是怎么发现的

最近有个Java系统上线后不久就收到了磁盘使用率告警,磁盘使用率已经超过了90%以上,并且磁盘使用率还在不停增长。

二、问题带来的影响

由于服务器磁盘被打满,导致了系统正常的业务日志无法继续打印,严重影响了系统的可靠性。

三、排查问题的详细过程

刚开始收到磁盘告警的时候,怀疑是日志级别问题,业务日志输出过多导致磁盘打满。但是查看我们自己的业务日志文件目录,每个日志文件内容都不是很大。

于是通过堡垒机登陆问题服务器,查看磁盘使用率很高的目录列表,发现根目录有个很大的日志文件,日志文件名称为log4j.log。但是检查应用日志配置后,日志输出配置路径并没有配置这个日志路径。而且我们用的是logback日志组件和配置文件,并没有使用log4j来输出日志。于是便打开这个未知来源的日志文件内容,记录的日志内容确实是我们自己的java系统写入的日志内容,且大部分都是debug级别日志内容。于是猜测在系统依赖的jar包内也有一个log4j的日志配置文件。于是便把部署包下载下来,然后通过文档遍历扫描所有jar包内的日志配置文件,结果在一个第三方jar包内找到一个log4j.xml配置文件,里边配置的root日志级别为debug,日志输出目录是系统根目录,日志文件名也都可以对应的上。

四、如何解决问题

通过上述排查过程找到了第三方jar包内的log4j配置文件,于是便排查该jar包的来源,发现是被其他jar包传递依赖进来的,并不是我们真实需要的jar包,所以通过maven排除该问题jar包即可。

五、总结反思

1\. 以后在引入第三方jar包的时候一定要检查他的依赖范围,看是否会与现有系统的jar包有冲突或者带来其他的影响。

2\. 对外提供第三方jar包的时候,不要把自己的调试代码和日志配置测试文件也打入jar包内。

作者:京东零售 曹志飞

来源:京东云开发者社区

标签:配置文件,log4j,包内,jar,Log4j,磁盘,日志,京东
From: https://blog.51cto.com/u_15714439/7074870

相关文章

  • Django实现文件上传、文件列表查看、修改、限流和日志记录8
    Django实现文件上传、文件列表查看、修改、限流和日志记录8本章节,总结一些部署项目遇到的报错,希望会有所帮助NameError:name'datetime'isnotdefined报错“logging.info('用户{}在{}登录成功'.format(username,datetime.now()))NameError:name'datetime'isnotd......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录7
    Django实现文件上传、文件列表查看、修改、限流和日志记录7不管调用的接口在内网,还是外网都需要做好限制保证接口的访问和限流降级处理,本章节新增限流功能。限流功能主要针对两个方面:IP和用户针对IP限流文件列表接口进行限流处理,限制每分钟每个IP访问10次,你可以使用Dja......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录6
    Django实现文件上传、文件列表查看、修改、限流和日志记录6对于已经上传的文件,现在已经实现了文件的查看修改,美中不足的是:需要查看每个文件需要提前记住文件名指定文件名进行查看和修改。为此,新增一个上传文件的列表功能,在通过模版按钮跳转路由到查看和修改页面。实现逻辑查看......
  • M2版Mac mini被京东杀到史低2888元!比苹果官网低1600
    苹果跳水王M2版Macmini又降价了。根据京东官方百亿补贴频道显示,Macmini8+256GB入门版只要2888元了,比前不久的拼多多2959还低,刷新了这款电脑的史上最低价。对比官网原价的4499元,直接跌掉超过1600元,已经非常值得入手。尤其是Macmini对比同价位的Windows迷你机,不论是性能还是......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录4
    Django实现文件上传、文件列表查看、修改、限流和日志记录4本章添加用户认证功能,属于安全模块。用户认证在Django中,默认情况下,用户的用户名和密码是存储在数据库中的。Django提供了内置的用户模型(User模型),它可以管理用户的认证和授权。配置数据库在file_upload/settings.py......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录2
    Django实现文件上传、文件列表查看、修改、限流和日志记录2本章节优化新增功能使用ssh秘钥连接远程服务器进行文件上传使用ssh私钥连接远程服务器上传文件使用SSH私钥连接远程服务器并上传文件,你可以使用paramiko库来实现SSH连接和文件传输的功能。首先,确保你已经生成了SSH......
  • mysql在开启group_replication后,状态显示为RECOVERING,告警日志报错MY-013117、MY-0115
    问题描述:mysql在开启group_replication后,状态显示为RECOVERING,告警日志报错MY-013117、MY-011582、MY-011583,如下所示:数据库:MySQL8.0.27系统:rhel7.364位1、问题重现Slave02[(none)]>select*fromperformance_schema.replication_group_members;+-----------------------......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录1
    Django实现文件上传、文件列表查看、修改、限流和日志记录1上一章已经实现了文件的上传到项目的指定目录中,这章我们继续乘胜追击继续优化实现。一般都是上传文件到后端服务器上,因此需要建立一个远程服务器的连接,本章连接远程服务器实现文件上传实现点击上传本地文件到远程服务......
  • 使用日志来监控应用
    根据提取规则运行的位置可以分为两类做法,一个是在中心端,一个是在日志端。中心端就是把要处理的所有机器的日志都统一传到中心,比如通过Kafka传输,最终落到Elasticsearch,指标提取规则可以作为流计算任务插到Kafka通道上,性能和实时性都相对更好。或者直接写个定时任务,调用Elastic......
  • Django实现文件上传、文件列表查看、修改、限流和日志记录
    Django实现文件上传、文件列表查看、修改、限流和日志记录本章先简单实现文件的上传,后续会将标题的功能一一添加上去实现,并且给出远程服务器的不同连接方式【密码和秘钥】,欢迎继续关注。安装了Django框架pipinstalldjango 创建一个Django项目django-adminstartproj......