BTrace生產調試

 

一、簡單介紹

btrace是一個生產環境中可能出現各種問題,但是這些問題又不是程序error導致的,可能是邏輯性錯誤,這時候需要獲取程序運行時的數據信息,如方法參數、返回值來定位問題,通過傳統的增加日誌記錄的方式非常繁瑣,而且需要重啓server,代價很大。BTrace應運而生,可以動態地跟蹤java運行程序,將跟蹤字節碼注入到運行類中,對運行代碼侵入較小,對性能上的影響可以忽略不計。

*(簡單來說,btrace是一個沒有代碼侵入性的,動態監控的debug工具)

https://github.com/btraceio/btrace

https://github.com/btraceio/btrace/releases下載好後解壓,進入bin目錄

 

##Btrace代碼,代碼中需要制定包名+類名+方法名,用於打印需要的debug信息

HfBtrace.java

import java.util.Date;

import com.sun.btrace.BTraceUtils;

import static com.sun.btrace.BTraceUtils.*;

import com.sun.btrace.annotations.*;

@BTrace

public class Btrace {

   @OnMethod(

       clazz = "com.hf.demo.JavaDemo",

       method = "print",

       location = @Location(Kind.RETURN)

   )

   public static void print(@Duration long duration) {//單位是納秒,要轉爲毫秒

        println(strcat("duration(ns): ", str(duration )));

        //println(strcat("duration(ms): ", str(duration / 1000000)));

   }

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章