部落格:
在移動端,沒有了pc瀏覽器上除錯**的利器,導致我們很難排查和除錯問題,於是我就簡單的寫了乙個可把log輸出到頁面上的js**。
那麼log輸出的日誌裡通常需要包含這些資訊:
當前時間,精確到秒或毫秒;
輸出想要輸出的資訊
除錯的檔案;
log輸出所在的行數,同乙個檔案可能有多個log輸出,最好每個都能定位到行
通常第1個和第2個比較容易實現,直接獲取當前date
的時間,然後追加到頁面上即可。但是當前所處的檔案和行號好像不太好獲取。
經常看console的時候應該知道,通常js出錯的時候,console會給出錯誤資訊和所在行號。這裡我們也是這樣的思路。
主動丟擲錯誤,然後用try...catch
進行接收,在catch裡獲取當前執行**所在的行號
function
log()catch(e)
}log();
執行上面的**,console裡會這樣的輸出:
error
// 丟擲異常的型別
at log (tools.html:175) // 丟擲異常時的行號: throw new error() ,這裡也能看到其所處的函式和所在檔案
at tools.html:180
// 執行log函式的行號: log()
我們從e.stack
裡能獲取不少的資訊,同時,我們還能獲取到log()
執行所處的環境:
functiona()
a();
var obj =
}obj.func();
輸出的資訊是:
error
at log (tools.html:175)
at a (tools.html:183) // 在a函式中執行,執行log的位置是183
at tools.html:185
---error
at log (tools.html:175)
at object.b (tools.html:189) // 在object.b函式中執行,執行log的位置是189
at tools.html:192
我們再對e.stack進行優化處理一下,就可以獲取到我們想要的資訊了,完整的**如下:
function
log(msg)
var $info = $body.queryselector('.info_wz_852');
var date = new
date(),
minute = ('00'+date.getminutes()).slice(-2),
second = ('00'+date.getseconds()).slice(-2);
trycatch(e)
}
輸出的結果是:
[47:47] at foo (
[47:47] at
當然,如果需要更複雜的功能,也可以繼續新增,比如ajax傳給後端等。
部落格:
QT輸出除錯資訊
1 window下qt中用qdebug 輸出除錯資訊到console控制台的設定方法 2 qt輸出除錯資訊 在qt中輸出除錯資訊有四個函式,分別是 qdebug qwarning qcritical以及qfatal,從字面資訊上就可以看出,他們屬於不同的等級,由於這四個函式的使用都相似,所以這裡只選...
輸出除錯資訊qDebug的應用
1 基本語法 qdebug 1111111111111111 int i 0 qstring s ss bool bl true qdebug 1111111111111111 d,s,d i,s,bl 布林型輸出的是0或1 在字元介面上執行程式時,會將資訊直接輸出到介面上。2 可以在正式執行時禁止...
C Debug和Trace 輸出除錯資訊
在 c 語言中允許在程式執行時輸出程式的除錯資訊,類似於使用 console.writeline 的方式向控制台輸出資訊。所謂除錯資訊是程式設計師在程式執行時需要獲取的程式執行的過程,以便程式設計師更好地解決程式 現的問題,這種除錯也被稱為是非中斷除錯。輸出除錯資訊的類儲存在 system.diag...