C++编程-4:c++和java不同语言的Android控制台打印日志方式

一、JAVA版

 

android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSEDEBUG,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错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息了。

注意:不同的打印方法在使用时都是某个方法带上(String tag, String msg)参数,tag表示的是打印信息的标签,msg表示的是需要打印的信息。

日志工具类

 

/**
 * LogUtil .java
 * 打印日志工具类
 * 使用方法:level = VERBOSE可以打印所有的日志;level = NOTHING所有的日志都打印不出来,上线时设置level = NOTHING
 */

public class LogUtil {
    public static final int VERBOSE = 1;
    public static final int DEBUG = 2;
    public static final int INFO = 3;
    public static final int WARN = 4;
    public static final int ERROR = 5;
    public static final int NOTHING = 6;
    public static final int level = VERBOSE;

    private LogUtil() {
        throw new UnsupportedOperationException("本日志工具类不能被实例化,直接调用静态方法就好");
    }

    /**
     * 打印Verbose级别日志
     * @param tag
     * @param msg
     */
    public static void v(String tag,String msg){
        if(level <= VERBOSE){
            Log.v(tag, msg);
        }
    }

    /**
     * 打印Debug级别日志
     * @param tag
     * @param msg
     */
    public static void d(String tag,String msg){
        if(level <= DEBUG){
            Log.d(tag, msg);
        }
    }

    /**
     * 打印Info级别日志
     * @param tag
     * @param msg
     */
    public static void i(String tag,String msg){
        if(level <= INFO){
            Log.i(tag, msg);
        }
    }

    /**
     * 打印Warn级别日志
     * @param tag
     * @param msg
     */
    public static void w(String tag,String msg){
        if(level <= WARN){
            Log.w(tag, msg);
        }
    }

    /**
     * 打印Error级别的日志
     * @param tag
     * @param msg
     */
    public static void e(String tag,String msg){
        if(level <= ERROR){
            Log.e(tag, msg);
        }
    }
}
//工具类打印方法
LogUtil.v(TAG,"verbose");
LogUtil.d(TAG,"debug");
LogUtil.i(TAG,"info");
LogUtil.w(TAG,"warn");
LogUtil.e(TAG,"error");

 

 

 

二、C++版

1.添加头文件#include<android/log.h>

2.添加log库liblog.so

3.定义宏

 

#define TAG "myDemo-jni" // 这个是自定义的LOG的标识 
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,TAG ,__VA_ARGS__) // 定义LOGD类型 
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,TAG ,__VA_ARGS__) // 定义LOGI类型 
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,TAG ,__VA_ARGS__) // 定义LOGW类型 
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,TAG ,__VA_ARGS__) // 定义LOGE类型 
#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL,TAG ,__VA_ARGS__) // 定义LOGF类型 

上述代码中定义的函数分别对应于Android 的Java代码中的Log.d(), Log.i(), Log.w(),Log.e(), Log.f()等方法。
 

 

参考文章:

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值