当我们在记录日志时每个类中會定义一个日志对象,然后利用这个对象去写日志那么我们在处理日志时,如何能才能记录日志对象所在的类、方法和行号呢log4j中已经實现了该功能,那么它是怎么实现的呢
其实我们可以这样,在要写日志的代码时获得当前的线程信息这样我们就可以获得上个线程的信息了(即对象写日志所在类的信息)。
执行Test中的main函数得到以下结果:
是不是输出了Test类中调用的信息呢?那么有很多人就问了为什么location類中调用的是stacts[2]而不是stacts[0]或其他的呢?
针对这个问题我们可以将stacts数组里面的东西遍历输出一下就知道了:
再次执行,输出结果如下:
那么这僦好理解了线程是以栈形式存放的,