java 获取当期 [ 行号,方法名,类名,文件名] , 编写日志类

不是特别懂,但是会用了,哈哈

先上一张图片
在这里插入图片描述
大家可以看到,wwwwwwww()并没有出现在栈里,因为它已经出栈了

它的流程大概是这样的

进栈 main()
进栈出栈 …() //忽悠很多方法,直接到f()

进栈 f()

进栈 wwwwwww()
出栈 wwwwwww()

进栈 Throwable()
进栈出栈 …() //忽悠很多方法
在这里 栈的顺序就已经确定了
出栈 Throwable()

进栈 getStackTrace()
在内部进行 克隆后返回 StackTraceElement[]
在这里插入图片描述居然是中文!第一次见有中文的文档注释
出栈 getStackTrace()

开始打印
出栈 f()

出栈 main()

[ 行号,方法名,类名,文件名] 都是表示,在一个 文件的一个类的一个方法的第n行里进入了另一个方法
比如在 f()方法里 进入了ffffffffff()方法,它保存的是 { 行数:8,方法名:f ,类名:Test ,文件名:Test.java },而不是说在 第8行进入了ffffffff()方法, 记录的是 在第8行的f()方法进入了某个方法

编写日志类

可以调整数组(栈)的下标,来决定返回那一个位置

StackTraceElement 的 toString 被重写了,可以直接使用这个方法

还有个方式可以获取 StackTraceElement[ ]
通过 Thread.currentThread().getStackTrace() 获取
不过它的栈顶是一个你不需要的数据

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾仪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值