Android调试的Log.d()没有输出

在之前我是很喜欢使用真机进行调试的,因为那时候觉得用真机调试比较方便,直到我发现我的手机打印不出Log.d()的调试日志,我才开始经常使用模拟器。当然还有两小点是:我的手机不支持快速启动和小编的电脑配置比较低,模拟器太吃内存了。

写一个简单的应用,它的代码是

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d("调试日志","你好");
        Log.e("错误日志","你好");
    }
}

很简单,就输出一个调试日志和错误日志,但是在真机和模拟器的输出却不一样。

首先使用的是真机

Android调试的Log.d()没有输出_第1张图片

它的输出日志只有错误日志,调试日志不见了。

然后我们使用模拟器进行调试

Android调试的Log.d()没有输出_第2张图片

它把所有的日志都输出了

我们在调试应用时但要是每个日志都要输出,否则是很抓狂的。通过网上查得知是部分厂家把比较低级的日志禁止输出了,所以就没有看到刚才的调试日志。

对Log处理一下,写成一个工具类,可以更方便我们使用,下面就是一个包装过的Log

import android.util.Log;

/**
 * 输出日志工具
 * Created by 15696 on 2017/12/9.
 */

public class LogUtil {
    private String TAG;
    private boolean isRelease = false;
    private boolean isDebug;

    public LogUtil(Class c, boolean isDebug) {
        this.TAG = c.getName();
        this.isDebug = isDebug;
    }

    public void d(String msg) {
        if (!isRelease && isDebug) {
            Log.d(TAG, "--------->" + msg);
        }
    }

    public void i(String msg) {
        if (!isRelease && isDebug) {
            Log.i(TAG, "--------->" + msg);
        }
    }

    public void w(String msg) {
        if (!isRelease && isDebug) {
            Log.w(TAG, "--------->" + msg);
        }
    }

    public void e(String msg) {
        if (!isRelease && isDebug) {
            Log.e(TAG, "--------->" + msg);
        }
    }
}

说到这里,我多唠叨一下,我建议调试日志最后使用Log的方法输出,因为Log是分等级的,还有过滤器,这极大的方便我们对输出日志的捕获,尽量不要用System.out.println()和System.err.println()


修改输出日志的级别

如果想修改输出日志级别,可以在进行以下操作(酷派手机):

1、拨号键中输入:*20121220#,输入完成会自动打开工程模式

2、选择日志输出等级

3、选择Java log level

4、在这里就可以选择你要输出的最低等级日志了


 

你可能感兴趣的:(Android)