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

Java中慎用e.printStackTrace()

Java使用框架集成的log4j2、logback等统一打印日志,尽量不使用catch的e.printStackTrace()

1、占用太多内存,造成锁死

e.printStackTrace()要打印字符串输出到控制台上,需要字符串常量池所在的内存块有足够的空间。由于e.printStackTrace() 语句要产生的字符串记录的是堆栈信息,太长太多,内存被填满了!大量线程产出字符串等待有内存被释放,会造成相互等待内存(字符串池所属的那么点非堆内存空间),导致整个应用挂掉了。

2、日志交错混合,不易读

从开始学习java,老师就教我们写代码要具有可读性,易读性。同样,日志的输出如果不具有易读性,也是让程序员非常头疼的一件事。那么为什么e.printStackTrace输出的日志具有不易读性了呢?

printStackTrace()默认使用了System.err输出流进行输出,与System.out是两个不同的输出流,那么在打印时自然就形成了交叉。再就是输出流是有缓冲区的,所以对于什么时候具体输出也形成了随机。

参考:
Java开发之log日志的使用尽量不用e.printStackTrace
java中e.printStackTrace()不要使用,请使用logger记录_Record Life的博客-CSDN博客_printstacktrace

http://www.lryc.cn/news/2419496.html

相关文章:

  • 2022年诺贝尔物理学奖背后的故事——贝尔不等式诞生之后
  • SurfaceView 基本使用
  • 硬件测试需要什么软件是什么原因,什么硬件软件检测温度准啊
  • zeros什么意思_什么是张量?
  • Ubuntu Touch的小确幸(Linux系统手机Ubports)
  • 数据结构(C语言版)--速成笔记【持续更新中。。】
  • MPEG-4视频压缩基础
  • 【FISCO-BCOS】 一、默认配置搭建区块链网络
  • textmate开发一个blog
  • 8个简单有用windows命令,电脑小白的高级命令!
  • MultiByteToWideCharWideCharToMultiByte 函数介绍
  • 机器学习——多项式拟合
  • java6下载安装_windows下如何安装java6.0
  • 使用C#的DrawString方法绘制文本
  • 建筑抗震设计规范
  • java入门基础教程(纯干货知识点+视频资源)
  • CC2530 zigbee模块概述与环境搭建
  • petri网基本概念
  • 【自动控制理论】 相位裕度和增益裕度
  • 数据库,万能密码与密码解析
  • android 通过广播唤醒被杀死的app
  • 工具之《activemq管理界面介绍》
  • 手把手教你用Python爬虫入门
  • excel文件损坏修复绝招_修复数据工具大盘点,让你快速掌握电脑数据恢复的秘密武器...
  • 13.【openCV_imread()函数详解】
  • 电子工程师-单片机的开发过程1
  • Qt学习12:常用Layout布局方式总结
  • 二进制文件、文本文件
  • linux tar命令解析(压缩解压)(tar指令)(十分之坑,千万不要在windows上解压带有软链接的压缩文件,会把软链接搞没了!软链接丢失、软链接失效)
  • 串联/并联谐振电路及其应用