java實現簡單的日誌打印

實現原理:
java.lang.Throwable類可以實時獲取當前調用棧每一層調用的詳細信息,包括文件名、類名、方法名和行號。
示例代碼:

public class LocalLog {

    public static void log(String log){
        StackTraceElement[] stacks = new Throwable().getStackTrace();
        StackTraceElement stack1 = stacks[1];
        System.out.println("LOG POINT@"
                + "filename:"+stack1.getFileName()
                + ",classname:"+stack1.getClassName()
                + "methodname:"+stack1.getMethodName()
                + "lineno:"+stack1.getLineNumber());
        System.out.println("LOG INFO:"+log);
    }

    public static void main(String[] args){
        LocalLog.log("this is a test!");
    }
}

main方法執行結果:

LOG POINT@filename:LocalLog.java,classname:figo.fileParse.LocalLogmethodname:mainlineno:19
LOG INFO:this is a test!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章