乙個功能強大的日誌工具類

2022-05-01 09:15:11 字數 1070 閱讀 4251

日誌可謂是開發中必不可少的工具了, 但是一般的日誌資訊難以滿足我們的需要,特別是對於大一點的複雜的專案,日誌太多,經常導致我們定位不到列印日誌的位置.因此我們希望列印的日誌能告訴我們日誌是在**列印的,哪個類,哪個方法,哪一行? 更進一步,最好我點選日誌就能跳轉到原始碼處,那就更好啦.

可以看到有具體的執行緒資訊,類資訊,方法資訊,以及原始碼位置,並且點選鏈結將跳轉到原始碼處,同時,json已經格式化了,看著很方便.

下面說說怎麼實現.

那怎麼獲取類名方法名,行數呢?這時就需要用到stacktraceelement類了,我們知道,在方法執行時,執行緒會將該方法壓入棧,因此可以通過執行緒獲取相應的棧幀元素,來取得方法的呼叫資訊.

如下圖所示:

可以看到,執行緒的呼叫軌跡,我們可以利用這個獲取到方法被呼叫對應的stacktraceelement.

stacktraceelement logelement = thread.currentthread().getstacktrace()[4];//這裡去index為4是與具體方法呼叫深度有關

string fullclassname = logelement.getclassname();

string threadname = thread.currentthread().getname();

string classname = fullclassname.substring(fullclassname.lastindexof(".") + 1);

string methodname = logelement.getmethodname();

string filename = logelement.getfilename();

int linenumber = logelement.getlinenumber();

再然後,組裝這些日誌資訊:

github:

乙個功能強大的linux命令 find

linux下find命令在目錄結構中搜尋檔案,並執行指定的操作。linux下find命令提供了相當多的查詢條件,功能很強大。由於find具有強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間來了解一下。即使系統中含有網路檔案系統 nfs find命令在該檔案系統中同樣有效,只你具有相應的...

乙個功能強大的資料庫備份 還原工具

我需要乙個功能比較強大的資料庫備份 還原工具,在網上搜尋了很久沒找到,無賴只有去看看,運氣好,一下就發現了乙個 kb dotnet sql server backup.aspx 開源了 很好很強大 功能 可以自定義需要備份的特定表 檢視 儲存過程 自定義的函式 資料型別,備份檔案還自動使用zip壓縮...

NC 功能強大的網路工具

功能說明 功能強大的網路工具 nc hln 詳解cp failed connection refused connection to 192.168.2.34 22 port tcp ssh su cceeded nc connect to 192.168.2.34 port 23 tcp fail...