title: Android 打印日志封装库
在开始前先明白这些东西
android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,DEBUG,INFO, WARN,ERROR。
1、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("","");
2、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择.
3、Log.i的输出为绿色,一般提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息
4、Log.w的意思为橙色,可以看作为warning警告,一般需要我们注意优化Android代码,同时选择它后还会输出Log.e的信息。
5、Log.e为红色,可以想到error错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息了。
LoggerTest
参考简书 Android 如何优雅的打印日志
原文: Simple, pretty and powerful logger for android
有些手机不显示debug信息可以这样
需要打开华为手机的相关Log开关,具体步骤如下:
- 进入拨号界面输入:
*#*#2846579#*#*
- 依次选择ProjectMenu---后台设置----LOG设置---LOG开关 点击打开, 然后在LOG级别选VERBOSE
- 重新启动手机
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\":\"西北风\",\"WS\":\"3级\",\"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级</fengli><shidu>19%</shidu><fengxiang>北风</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
// 可怕的失败,报告一个永远不可能发生的情况
Logger.wtf("Hello World!");
// 打印JSON
Logger.json(JSON_CONTENT);
// 打印XML
Logger.xml(XML_CONTENT);
// 打印集合
Logger.d(list);
Logger.d(map);
Logger.d(set);
// 打印数组
Logger.d(array);
// 格式化字符串
Logger.d("Hello %s%s", "World", "!");
//自定义单个Tag
Logger.t("MyTag").d("Hello World!");
try {
//int a = 6 / 0;
} catch (Exception e) {
Logger.e(e, "Exception");
}
}
}