没有合适的资源?快使用搜索试试~ 我知道了~
【编者按】本文作者是ArchanaaPanda,从2000以来一直在软件开发(构架、设计和编程)团队担任Java/JavaEE构架师,目前立志于做一个与时俱进的独立的顾问架构师。在本篇文章中,作者通过多个方面为生产环节的日志提供建议和指导,最后还介绍了一个高性能的智能日志技术,帮助大家构建高性能的智能日志框架。当应用在生产过程中,日志通常处于开发周期的次要位置,但实际上高性能的日志可能成为开发团队的重要生命线。在此我们假设读者已熟悉了各种日志框架,如Log4j、SLF4J等,所以不再详细介绍,本文旨在为「真实」的生产日志提供指南,检测其对应用质量的影响,同时还为大家介绍了一个被遗忘已久的高性能
资源推荐
资源详情
资源评论
高性能智能日志实践高性能智能日志实践
【编者按】本文作者是 Archanaa Panda ,从 2000 以来一直在软件开发(构架、设计和编程)团队担任 Java /
JavaEE 构架师,目前立志于做一个与时俱进的独立的顾问架构师。在本篇文章中,作者通过多个方面为生产环节的日
志提供建议和指导,最后还介绍了一个高性能的智能日志技术,帮助大家构建高性能的智能日志框架。
1.摘要
当应用在生产过程中,日志通常处于开发周期的次要位置,但实际上高性能的日志可能成为开发团队的重要生命线。
在此我们假设读者已熟悉了各种日志框架,如 Log4j 、 SLF4J 等,所以不再详细介绍,本文旨在为「真实」的生产日
志提供指南,检测其对应用质量的影响,同时还为大家介绍了一个被遗忘已久的高性能的智能日志技术。
2.介绍
在为应用搭建架构、设计、开发甚至是提升性能的整个环节中,大家都常常忽略日志的重要性。最后当应用程序一切
准备就绪打算部署的时候,会发生什么呢?
糟糕!应用程序已经脱离你的开发环境,它无法运行出你想要的 IDE 平台,而且没有对应的调试器可用,此时你才想
起来日志的重要性似乎为时已晚。然后当你费劲地想从一大堆日志中尝试调试出应用哪里出了问题,才发现这个任务
不仅仅是艰巨,而且极其无聊、繁琐,还会浪费大量的时间。根据你多年的经验和专业知识来看,这样的做法毫无疑
问是大海捞针!再或者你把这个任务分配给下属或运维团队,而这样一份繁琐无比费力不讨好的工作,搁谁身上都会
招致抱怨!甚至他们也无功而返,集体抱怨你的失策,你只有让专业架构师和设计师参与进来。
所以,日志应该是生产应用的重要生命线,谁都不应该掉以轻心。当然,众所周知,可以根据需求开启或关闭各种日
志的记录级别,市面上知道有多种日志类别和日志框架,如 Log4j 、 Commons Logging 或是 SLF4J ,我们可以直接
将日志发到不同目的地,如文件、数据库、 JMS 队列等。
但是我们中有多少人会真正地计划日志呢?又有多少人理解日志是如何影响系统质量的呢?谁又会不断地去优化日
志,时刻记得一旦应用上线,日志会对系统和工作生活产生哪些影响?还有多少人已经尝试过利用日志框架的先进功
能来提升日志性能呢?
本文主要想唤醒大家对应用日志的重视,同时为部署应用日志提供基本指导。最后,本文会介绍一个被遗忘已久的日
志技术,在不影响应用性能和质量的前提下,帮助大家实现高质量的日志记录。
3.记录其他系统质量属性
3.1.1监控
日志记录是最常见的质量监控方式,它可以帮助应用开发者探究到问题的根源。但这些往往只通过监控来实现,对于
开发者来说,在代码的各个地方编写一个 System.out.println() 或 logger.log() 语句再简单不过。然而,问题在于大量的
日志可能会导致有用的事件日志被忽略掉,这样完全达不到日志记录的目的。所以,开发者可能会寻找其他系统监控
技术,如使用或开发 JMX 控制台。这一点会在后面的 「为待生产的应用进行日志记录」章节中详细讨论。
3.1.2 性能
不管咨询哪位性能专家或架构师,对于 90% 的应用来说,过多的日志记录都会对性能产生非常不利的影响。日志是一
种 I/O 密集型活动,的确会对应用性能产生不良影响,特别是传统的日志方式还会写入应用线程环境的 FileAppender
中。不仅如此,日志代码还会造成大量的堆消耗和垃圾收集,比如:
if (logger.isDebugEnabled())
logger.debug("name "+person.name+" age "+person.age+" address "+person.address);
除此之外,内部调用日志到 Log4J Appender 的 doappend() 方法,会与线程安全同步。这也意味着,应用线程不仅在
同步地进行大量的磁盘 I/O 操作,还会在写入日志时互相阻塞!在某电子政务门户网站上最严峻的性能情形之一就
是,线程转储显示在日志记录写入到单个文件 appender 时,应用日志也被写入到这个的 appender 文件集中!
资源评论
weixin_38623080
- 粉丝: 5
- 资源: 1002
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于SpringBoot+Vue的校医院挂号平台(前端代码)
- (源码)基于NodeMCU框架的NodeHealthGuard系统心脏健康早期预警系统.zip
- 基于SpringBoot+Vue的校医院挂号平台(后端代码)
- (源码)基于PyTorch的图像分类模型训练与评估系统.zip
- AT89C52单片机加LCD12864实现贪吃蛇游戏
- (源码)基于Java的研究生管理系统.zip
- (源码)基于SpringBoot和Vue的社区论坛系统.zip
- (源码)基于Python的自动安卓APK安装系统.zip
- (源码)基于SpringBoot和Netty的即时通讯系统.zip
- (源码)基于SpringBoot和Vue的小区物业后台管理系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功