当前位置:   article > 正文

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表示的是需要打印的信息。

日志工具类

 

  1. /**
  2. * LogUtil .java
  3. * 打印日志工具类
  4. * 使用方法:level = VERBOSE可以打印所有的日志;level = NOTHING所有的日志都打印不出来,上线时设置level = NOTHING
  5. */
  6. public class LogUtil {
  7. public static final int VERBOSE = 1;
  8. public static final int DEBUG = 2;
  9. public static final int INFO = 3;
  10. public static final int WARN = 4;
  11. public static final int ERROR = 5;
  12. public static final int NOTHING = 6;
  13. public static final int level = VERBOSE;
  14. private LogUtil() {
  15. throw new UnsupportedOperationException("本日志工具类不能被实例化,直接调用静态方法就好");
  16. }
  17. /**
  18. * 打印Verbose级别日志
  19. * @param tag
  20. * @param msg
  21. */
  22. public static void v(String tag,String msg){
  23. if(level <= VERBOSE){
  24. Log.v(tag, msg);
  25. }
  26. }
  27. /**
  28. * 打印Debug级别日志
  29. * @param tag
  30. * @param msg
  31. */
  32. public static void d(String tag,String msg){
  33. if(level <= DEBUG){
  34. Log.d(tag, msg);
  35. }
  36. }
  37. /**
  38. * 打印Info级别日志
  39. * @param tag
  40. * @param msg
  41. */
  42. public static void i(String tag,String msg){
  43. if(level <= INFO){
  44. Log.i(tag, msg);
  45. }
  46. }
  47. /**
  48. * 打印Warn级别日志
  49. * @param tag
  50. * @param msg
  51. */
  52. public static void w(String tag,String msg){
  53. if(level <= WARN){
  54. Log.w(tag, msg);
  55. }
  56. }
  57. /**
  58. * 打印Error级别的日志
  59. * @param tag
  60. * @param msg
  61. */
  62. public static void e(String tag,String msg){
  63. if(level <= ERROR){
  64. Log.e(tag, msg);
  65. }
  66. }
  67. }
  1. //工具类打印方法
  2. LogUtil.v(TAG,"verbose");
  3. LogUtil.d(TAG,"debug");
  4. LogUtil.i(TAG,"info");
  5. LogUtil.w(TAG,"warn");
  6. LogUtil.e(TAG,"error");

 

 

 

二、C++版

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

2.添加log库liblog.so

3.定义宏

 

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

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

 

参考文章:

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/797932
推荐阅读
相关标签
  

闽ICP备14008679号