title: Android 打印日志封裝庫(kù)
在開(kāi)始前先明白這些東西
android.util.Log常用的方法有以下5個(gè):Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 宵凌。根據(jù)首字母對(duì)應(yīng)VERBOSE咱台,DEBUG,INFO, WARN瓣履,ERROR站超。
1渺氧、Log.v 的調(diào)試顏色為黑色的,任何消息都會(huì)輸出咧最,這里的v代表verbose啰嗦的意思慈鸠,平時(shí)使用就是Log.v("","");
2、Log.d的輸出顏色是藍(lán)色的膏燃,僅輸出debug調(diào)試的意思茂卦,但他會(huì)輸出上層的信息,過(guò)濾起來(lái)可以通過(guò)DDMS的Logcat標(biāo)簽來(lái)選擇.
3组哩、Log.i的輸出為綠色等龙,一般提示性的消息information处渣,它不會(huì)輸出Log.v和Log.d的信息,但會(huì)顯示i蛛砰、w和e的信息
4罐栈、Log.w的意思為橙色,可以看作為warning警告泥畅,一般需要我們注意優(yōu)化Android代碼荠诬,同時(shí)選擇它后還會(huì)輸出Log.e的信息。
5位仁、Log.e為紅色柑贞,可以想到error錯(cuò)誤,這里僅顯示紅色的錯(cuò)誤信息聂抢,這些錯(cuò)誤就需要我們認(rèn)真的分析钧嘶,查看棧的信息了。
LoggerTest
參考簡(jiǎn)書(shū) Android 如何優(yōu)雅的打印日志
原文: Simple, pretty and powerful logger for android
有些手機(jī)不顯示debug信息可以這樣
需要打開(kāi)華為手機(jī)的相關(guān)Log開(kāi)關(guān)琳疏,具體步驟如下:
- 進(jìn)入撥號(hào)界面輸入:
*#*#2846579#*#*
- 依次選擇ProjectMenu---后臺(tái)設(shè)置----LOG設(shè)置---LOG開(kāi)關(guān) 點(diǎn)擊打開(kāi), 然后在LOG級(jí)別選VERBOSE
- 重新啟動(dòng)手機(jī)
compile 'com.orhanobut:logger:1.15'
package com.lexinsmart.xushun.loggertest;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import com.orhanobut.logger.Logger;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* Created by yangle on 2016/12/26.
*/
public class MainActivity extends AppCompatActivity {
private Button btnLog;
private String JSON_CONTENT;
private String XML_CONTENT;
private List<String> list;
private Map<String, String> map;
private Set<String> set;
private String[] array;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnLog = (Button) findViewById(R.id.btn_log);
initData();
btnLog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
log();
}
});
}
private void initData() {
JSON_CONTENT = "{\"weatherinfo\":{\"city\":\"北京\",\"cityid\":\"101010100\"," +
"\"temp\":\"-2\",\"WD\":\"西北風(fēng)\",\"WS\":\"3級(jí)\",\"SD\":\"241%\",\"WSE\":\"3\"," +
"\"time\":\"10:61\",\"isRadar\":\"1\",\"Radar\":\"JC_RADAR_AZ9010_JB\"}}";
XML_CONTENT = "<resp><city>北京</city><updatetime>16:10</updatetime><wendu>23</wendu>" +
"<fengli>3級(jí)</fengli><shidu>19%</shidu><fengxiang>北風(fēng)</fengxiang></resp>";
list = new ArrayList<>();
list.add("Hello");
list.add("World");
map = new HashMap<>();
map.put("H", "Hello");
map.put("W", "World");
set = new HashSet<>();
set.add("Hello");
set.add("World");
array = new String[]{"Hello", "World"};
}
private void log() {
// 普通日志
Logger.v("Hello World!");
Logger.d("Hello World!");
Logger.i("Hello World!");
Logger.w("Hello World!");
Logger.e("Hello World!");
// what a terrible failure
// 可怕的失敗有决,報(bào)告一個(gè)永遠(yuǎn)不可能發(fā)生的情況
Logger.wtf("Hello World!");
// 打印JSON
Logger.json(JSON_CONTENT);
// 打印XML
Logger.xml(XML_CONTENT);
// 打印集合
Logger.d(list);
Logger.d(map);
Logger.d(set);
// 打印數(shù)組
Logger.d(array);
// 格式化字符串
Logger.d("Hello %s%s", "World", "!");
//自定義單個(gè)Tag
Logger.t("MyTag").d("Hello World!");
try {
//int a = 6 / 0;
} catch (Exception e) {
Logger.e(e, "Exception");
}
}
}