Android提供的打印日誌的方法是通過android.util.Log類來打印我們需要的日誌信息,當打印的日誌很多的時候,我們需要查看是哪一行就比較困難,除非你打上了標記,但是這樣會比較麻煩。這個時候我們可以使用Logger來替代android.util.Log的日誌打印。
先看一下效果圖:
線程名、那個類的那個方法、哪一行都打印出來了,還可以點擊直接跳到打印的位置,有沒有很高大上的感覺?
github地址: https://github.com/orhanobut/logger
配置
直接在app的build.gradle裏面添加如下代碼
dependencies {
compile 'com.orhanobut:logger:1.15'
}
或者通過choose library dependency搜索添加
使用
使用方法非常簡單,甚至比android.util.Log還要簡單,只需要通過調用com.orhanobut.logger.Logger該類的方法即可,該類也提供了v,d,i,w,e等方法。
Logger.v("hello world");
Logger.d("hello world");
Logger.i("hello world");
Logger.w("hello world");
Logger.e("hello world");
打印的效果圖
是不是用起來很爽,tag都不用設置,可以看到tag默認爲PRETTYLOGGER。當然你也可以自己定義tag
Logger.t("MY_TAG").v("hello world"); //設置tag爲MY_TAG,並打印
效果如下
當然,這樣它會默認在PRETTYLOGGER後面拼接你的tag打印。不要慌,PRETTYLOGGER也是可以自定義的。只需要加上如下代碼:
Logger.init("locationtest");
效果如下
ok,搞定。
Logger還提供了e(Throwable throwable, String message, Object… args)方法,將異常信息打印出來
try {
String s = null;
s.toString();
}catch (NullPointerException e){
Logger.e(e,"test----");
}
效果如下
還有將json和xml格式化打印的效果
String json = "{\n" +
"\"number\":123,\n" +
"\"object\":{\n" +
"\"a\": \"b\",\"c\": \"d\"}," +
"\"string\":\"Hello World\"\n" +
"}";
Logger.json(json);
String xml = "<map><key>message</key></map>";
Logger.xml(xml);
效果圖
Log打印封裝
我們在開發過程中,會打印很多日誌信息,這些信息可能會包含一些敏感信息,而我們在把應用打包發佈的時候肯定不希望這些日誌繼續打印(可能會被同行看到),這個時候可以封裝一個日誌打印的工具類。
package com.chengliang0315.locationtest.util;
import com.chengliang0315.locationtest.BuildConfig;
import com.orhanobut.logger.Logger;
/**
* 日誌打印工具類
*
* @author chengliang0315
* @see <a>http://blog.csdn.net/chengliang0315</a>
*/
public class LogUtils {
/**
* 是否開啓debug
* 注意:使用Eclipse打包的時候記得取消Build Automatically,否則一直是true
*/
public static boolean isDebug= BuildConfig.DEBUG;
/**
* 錯誤
*/
public static void e(String tag,String msg){
if(isDebug){
Logger.t(tag).e(msg+"");
}
}
/**
* 調試
*/
public static void d(String tag,String msg){
if(isDebug){
Logger.t(tag).d( msg+"");
}
}
/**
* 信息
*/
public static void i(String tag,String msg){
if(isDebug){
Logger.t(tag).i( msg+"");
}
}
}
你只需要在調用LogUtils來打印日誌即可,這樣就方便管理了。當然在使用Eclipse打包的時候記得取消Build Automatically,否則一直是true