訂製自己的日誌工具

2021-07-24 04:04:28 字數 1155 閱讀 4421

打個比方,你正在編寫乙個比較龐大的專案,期間為了方便除錯,在**的很多地方都列印了大量的日誌。最近專案已經基本完成了,但是卻有乙個非常讓人頭疼的問題,之前用於除錯的那些日誌,在專案正式上線之後仍然會照常列印,這樣不僅會降低程式的執行效率,還有可能將一些機密的資料洩漏出去。

如果你想一行一行的把 所有的列印日誌**都刪掉,顯然這不是什麼好點子,不僅費時費力,而且以後你繼續維護這個專案的時候可能還會需要這些日誌,所以最理想的情況是能夠自由地控制日誌的列印,當程式處於開發階段就讓日誌列印出來,當程式上線之後就把日誌遮蔽掉。

下面我們來編寫一下這個日誌工具

public class logutil 

}public static void

d(string tag, string msg)

}public static void

i(string tag, string msg)

}public static void

w(string tag, string msg)

}public static void

e(string tag, string msg)

}}

可以看到我們在logutil中先是定義了verbose、 debug、 info、 warn、 error、 nothing這六個整數常量,並且它們對應的值都是遞增的。然後又定義乙個level常量,可以將它的值指定為上面六個常量中的任意乙個。

接下來我們提供了v()、 d()、 i()、 w()、 e()這五個字定義的日誌方法,在其內部分別呼叫了log.v()、 log.d()、 log.i()、 log.w()、 log.e()這五個方法來列印日誌,只不過這些自定義的方法中我們都加入了乙個if()判斷,只有當level常量的值小於或等於對應日誌級別值的時候,才會將日誌列印出來。

這樣就把乙個自定義的日誌工具建立好了,之後在專案裡我們可以像使用普通的日誌工具一樣使用logutil,比如列印一行debug級別的日誌就可以這樣寫:

logutil.d("tag"

,"debug log");

然後我們只需要修改level等於nothing就可以把所有日誌都遮蔽掉。使用了這種方法之後,剛才所說的那個問題就不復存在了,你只需要在開發階段將level指定成verbose,當專案正式上線的時候將level指定成nothing就可以了。

定製自己的日誌工具

雖然 android 中自帶的日誌工具功能非常強大,但也不能說是完全沒有缺點,例如在列印日誌的控制方面就做得不夠好。打個比方,你正在編寫乙個比較龐大的專案,期間為了方便除錯,在 的很多地方都列印了大量的日誌。最近專案已經基本完成了,但是卻有乙個非常讓人頭疼的問題,之前用於除錯的那些日誌,在專案正式上...

定製自己的日誌工具

為什麼需要定製自己的日誌工具呢?難得安卓自帶的log不好嗎?雖然 android 中自帶的日誌工具功 能非常強大,但也不能說是完全沒有缺點,例如在列印日誌的控制方面就做得不夠好。打個比方,你正在編寫乙個比較龐大的專案,期間為了方便除錯,在 的很多地方都 列印了大量的日誌。最近專案已經基本完成了,但是...

管理自己的日誌工具類

平時開發專案的時我們經常都要列印日誌,但是經常都沒有及時的關閉我們的日誌。有時候我們的資料是很重要的隱私,所以就需要我們來管理自己的日誌,在開發的時候我們可以看自己列印的日誌。當產品上線的時候,我們就要把我們的日誌 列印給關閉掉。看下面的工具類 public class logutil public...