androidlog日志之 Klog (StackTraceElement)

  之前写项目的时候一直用的自己封装的log,可以打印当前的类名,后来突然觉得很不方便(要想输出类名必须传入当前的参数), 而且调试的时候最想知道的其实是方法名,所以我每次打印log日志的时候都是把方法名放在tag里面,大概是(LogPrint.iprint(Object, Tag, msg));  我一直在想,有没有什么方法可以获得当前正在执行的函数的名称呢, 可是仔细一想,不对呀,按照c和汇编的思路,底层机器指令在执行的时候,所谓的方法其实只是对应的一个地址而已,地址又何来的名字呢(恩,感觉很有道理), 想到这里也就放弃了。

  不知过了多久,在网上突然看到了有人贡献了自己写了log日志封装类,让我想起了之前自己的问题,抱着好奇的心态下了下来看了看,
(github:https://github.com/ZhaoKaiQiang/KLog), 看着看着就发现了一个很有趣的东西StackTraceElement, 故名思议就是java追踪栈的元素的封装类啦,点开源码后,很开心的发现了declaringClass, methodName, fileName, lineNumber 这4个属性,接下来就是自己测试测试啦, 测试发现,当调用Thread.currentThread().getStackTrace()后遍历打印调用方法名(我调用的方法顺序为:onClick()->Klog.a()->printLog()->Thread.currentThread().getStackTrace()), 输出结果: getThreadStackTrace->getStackTrace->printLog-> a->onClick....。

 

   总之,it这个行业不能老用旧的知识来限制自己(我开始就是这样), 有想法要先调研,然后再下结论!

 

  重复的东西索然无味: 

    http://www.cnblogs.com/java-boy/archive/2013/01/05/2845347.html  

    http://www.2cto.com/kf/201408/328680.html

 

转载于:https://www.cnblogs.com/zhangyan-2015/p/4981061.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值