有沒有這樣的想法, 學習中, 測試本身的代碼效果, 又怕關鍵地方出現預料以外的錯誤, 因此會想在關鍵地方打印出關鍵信息. 不少時候經過這種方式可以快速定位bug的緣由, 而又不用打斷點費力的調試. 我的認爲這種方式是很好的輕量級的debug方式. 其實就是借鑑日誌的思想.工具
那麼問題來了, 要麻煩的寫上
System.out.println("balbabal")
嗎.學習筆者這個工具類就是爲了解決這個麻煩的.測試
主要優勢spa
使用簡單debug
可點擊跳轉(這是最大的優勢)調試
主要是借鑑了異常輸出時的信息, 利用throwable
接口實現我要的功能.日誌
package com.__note__.utils; import org.junit.Test; public class Log { // 直接調用trace(Object o)則爲1, 二次調用則爲2 private static int steNum = 1; public static void trace(Object o) { Throwable throwable = new Throwable(); // 0 StackTraceElement ste; ste = throwable.getStackTrace()[steNum]; // 每次調用應該講steNum歸爲1 steNum = 1; System.out.println(o + "\t\t...at\t" + ste); } public static void trace() { steNum = 2; // 2次調用 trace(""); } public static void begin() { steNum = 2; trace("BEGIN: "); } public static void end() { steNum = 2; trace("END: "); } @Test public void fun() { Log.trace(); Log.trace("方法開始"); Log.trace(new Object()); Log.trace(998); // 可在方法調用開始時標記 Log.begin(); // 可在方法調用結束時標記 Log.end(); } }