我的一位同事決定,我們需要在執行它們時打印每個類和方法,以便他在每個方法的開始時及時鍵入每個方法和類的名稱。這是不是有點痛苦給我,讓我擡起頭,在網絡上,並與上前:在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/)。 –