我的一位同事决定,我们需要在执行它们时打印每个类和方法,以便他在每个方法的开始时及时键入每个方法和类的名称。这是不是有点痛苦给我,让我抬起头,在网络上,并与上前:在Java中查找调用方法和类的名称
System.out.println(new Object(){}.getClass().getEnclosingClass().getSimpleName()+ " : "+
new Object(){}.getClass().getEnclosingMethod().getName() +" [IN]");
这个工程膨胀。除此之外,我已被告知,这是不令人满意的,因为我们创建对象只是为了查找名称,我们应该“而不是简单地使用类'.class属性”。小问题,我似乎无法得到那个工作。
别的东西,我在网上找到了:
System.out.println(Thread.currentThread().getStackTrace()[1].getClassName() + " : "+
Thread.currentThread().getStackTrace()[1].getMethodName() +" [IN]");
它做什么,我需要但有人认为它是S-L-O-W,不必做一个堆栈跟踪。
有没有人有什么好的建议?
您是否试图从头开始重新创建日志框架? –
气垫船是正确的 - 使用日志框架,而不是重新发明它。获取方法名称总是很慢,无论你如何做。 –
不要重新发明车轮。使用日志框架,即[Logback](https://logback.qos.ch/)。 –