自定義Log工具
阿新 • • 發佈:2018-12-08
/**
* @author zhou.jn on 2018/11/27 17:22.
*/
public class SLog {
private static final String TAG_FILTER = "_Util";
//第二種方法控制Log輸出。
public static final boolean IS_DEBUG = false;
public static final int VERBOSE = 2;
public static final int DEBUG = 3;
public static final int INFO = 4;
public static final int WARN = 5;
public static final int ERROR = 6;
public static final int ASSERT = 7;
public static int mLevel = 0;
public static int getmLevel() {
return mLevel;
}
public static void setmLevel(int mLevel) {
SLog.mLevel = mLevel;
}
public static void v(String tag, String msg) {
if (mLevel <= VERBOSE) {
Log.v(tag + TAG_FILTER, msg);
}
}
public static void i(String tag, String msg) {
if (mLevel <= INFO) {
Log.i(tag + TAG_FILTER, msg);
}
}
public static void e(String tag, String msg) {
if (mLevel <= ERROR) {
Log.e(tag + TAG_FILTER, msg);
}
}
public static void d(String tag, String msg) {
if (mLevel <= DEBUG) {
Log.d(tag + TAG_FILTER, msg);
}
}
public static void w(String tag, String msg) {
if (mLevel <= WARN) {
Log.w(tag + TAG_FILTER, msg);
}
}
public static void a(String tag, String msg) {
if (mLevel <= ASSERT) {
Log.wtf(tag + TAG_FILTER, msg);
}
}
}
自定義Log的好處
- 控制Log的輸出。在開發階段,需要列印大量的Log,但釋出版本時需要將Log去掉,不能一行一行的去除Log,使用自定義Log,在需要隱藏Log的時候,只需要將設定:SLog.setLevel()調高可以顯示的Log的等級,這樣,低於level的Log則不會被列印。(或者用Boolean 型別的 isDebug做標記也可以)
- 建議採用控制Log輸出的第二種方法:使用Boolean型別去判斷是否,在自定義的Log上面新增一個布林型別標誌位,在每次使用的時候,進行判斷後再使用,這樣,當產生大量的日誌時,可以避免產生Log中的字串,直接在使用Log前就進行判斷。缺點:在使用的時候就會要多寫一些程式碼,但可以通過配置Android的列印Log的快捷鍵來優化使用時的不便。
//在使用的時候增加了一行判斷程式碼
if (SLog.IS_DEBUG){
SLog.v(TAG, "stop");
}