android log笔记
一、添加log
1 java层
import android.util.Log
//在需要打印Log的地方执行Log.v,Log.d,Log.i,Log.w,Log.e.
private static final String LOG_TAG = "MY_LOG_TAG";
Log.i(LOG_TAG, "This is the log printed by Log.i in android user space.");
Log.e(LOG_TAG, "xxxxxxxxxxx" + mFileName, e);
2 c、c++层
#include <cutils/log.h>
在需要调用Log的地方执行:ALOGV,ALOGD,ALOGI,ALOGW,ALOGE。
ALOGE("This is the log printed by LOGV in android user space.");//输出到main缓冲区
SLOGE("xxxxxxxxxxxxxxxxxx"); //输出到system缓冲区
还需要修改 Android.mk
LOCAL_SHARED_LIBRARIES := liblog
LOCAL_C_INCLUDES += system/core/include //可不用
3 libcore
System.out.println("##### xxxxxxxxxxxx ####### ");
二 抓log
参数<filter-spec>用于对某类的tag的日志输出进行过滤。每一个输出的Android日志信息都有一个tag和它的优先级.
该选项指定输出日志信息的<filename> ,默认是stdout . 但是这里的文件是指android系统上的文件。如果我们想把日志输出到本地window系统的话,请采用如下形式的命令:
三 log等级以及动态log
1 log等级
Verbose: 开发调试过程中一些详细信息,不应该编译进产品中,只在开发阶段使用。
Debug: 用于调试的信息,编译进产品,但可以在运行时关闭。
Info:例如一些运行时的状态信息,这些状态信息在出现问题的时候能提供帮助。
Warn:警告系统出现了异常,即将出现错误。
Error:系统已经出现了错误。
Info、Warn、Error这三个等级的Log的警示作用依次提高,需要一直保留。这些信息在系统异常时能提供有价值的分析线索。
2 动态log
2.1 通过版本控制
2.1.1 java 部分
import android.os.Build;
import android.util.Log
final public Boolean isEng =Build.TYPE.equals("eng");
if (isEng)
Log.v(“LOG_TAG”,“LOG_MESSAGE”);
2.1.2 c c++部分
#include<cutils/log.h>
char value[PROPERTY_VALUE_MAX];
int isEng=0;
property_get("ro.build.type",value, "user");
isEng=strcmp(value, "eng");
if (isEng)
ALOGV();
2.2 默认不开启,通过终端命令开启。
2.2.1 Java部分:
import android.util.Log
final String TAG=”MyActivity”;
final public Boolean LOG_DEBUG = Log.isLoggable(TAG, Log.DEBUG);
if (LOG_DEBUG)
Log.d(“LOG_TAG”,“LOG_MESSAGE”);
运行时开启log: 在终端输入:setprop log.tag.MyActivity DEBUG
运行时关闭log: 在终端输入:setprop log.tag.MyActivity INFO
2.2.2 c、c++部分:
#include<cutils/log.h>
#defineLOG_CTL “debug.MyActivity.enablelog”
charvalue[PROPERTY_VALUE_MAX];
int isDebug=0;
property_get(LOG_CTL,value, "0");
isDebug=strcmp(value,"1");
if (isDebug)
ALOGD();
运行时开启log: 在终端输入:setpropdebug.MyActivity.enablelog 1
运行时关闭log: 在终端输入:setpropdebug.MyActivity.enablelog 0
android log笔记相关推荐
- Android进阶笔记:Messenger源码详解
Messenger可以理解为一个是用于发送消息的一个类用法也很多,这里主要分析一下再跨进程的情况下Messenger的实现流程与源码分析.相信结合前面两篇关于aidl解析文章能够更好的对aidl有一个 ...
- Android进阶笔记:AIDL内部实现详解 (二)
接着上一篇分析的aidl的流程解析.知道了aidl主要就是利用Ibinder来实现跨进程通信的.既然是通过对Binder各种方法的封装,那也可以不使用aidl自己通过Binder来实现跨进程通讯.那么 ...
- 【转】 Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner
目录(?)[-] GridView Spinner GridView GridView是网格状布局,如图所示.在了解ListView后,很容易了解GridView.下面是例子的XML文件. <? ...
- 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据同步...
1.前言 上一篇文章中我们实现了离线要素的编辑操作,这一篇中主要介绍离在线一体化技术中最后一个环节离线数据的同步功能,通过对数据的上传,服务器端的版本化管理,实现数据生产管理的整个流程. 转载请注明出 ...
- 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据编辑...
1.前言 在上一篇我们已经实现了离线地理数据库的下载,这一篇我们着重介绍离线数据库的加载与编辑. 由于ArcGIS Runtime SDK for Android 10.2.X版本并没提供要素绘制功能 ...
- 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据下载...
1.前言 1.1.环境准备: ArcGIS for Desktop 10.4.1(10.2.1以上版本即可) ArcGIS for Server 10.4.1 (10.2.1以上版本即可) Postg ...
- Android开发笔记(序)写在前面的目录
知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经验教训,与网友互相切磋,从而去芜存菁进一步提升自己的水平.因此博主就想,入门的东西咱就不写了,人不能老停留在入 ...
- Android开发笔记(一百六十六)H5通过WebView录像上传
前面的博文< Android开发笔记(一百五十二)H5通过WebView上传图片>介绍了如何拍照上传给网页,不料客户又要求再加个摄像上传给网页.既然如此,那么再探讨一下如何实现这个摄像上传 ...
- Android开发笔记(一百五十八)运行时动态授权管理
App开发过程中,涉及到硬件设备的操作,比如拍照.录音.定位等等,都要在AndroidManifest.xml中声明相关的权限.可是Android系统为了防止某些App滥用权限,从而允许用户在系统设置 ...
最新文章
- Linux进程间通信(IPC)-------消息队列
- Openstack 实现技术分解 (1) 开发环境 — Devstack 部署案例详解
- SPOJ - PHRASES Relevant Phrases of Annihilation —— 后缀数组 出现于所有字符串中两次且不重叠的最长公共子串...
- android 判断手机计步_干货:电脑控制手机 一定不能错过的神器
- PostgreSQL 行变列的小应用
- SAP Kyma和SAP云平台上的Service instance
- les物流执行系统_【精益运营】立足智慧物流 推进仓储智能化稳步升级
- java整型缓存_JAVA整型包装类的缓存策略
- IOSelect模块
- Bootstrap 拼接式按钮菜单
- Jquery_异步上传文件多种方式归纳
- 原型模式(Prototype)解析例子
- Linux下安装Scala
- 四阶龙格库塔法的基本思想_四阶龙格—库塔法的原理及其应用
- 三种最常用的日志分析软件
- java-php-python-ssm网上游戏商店设计计算机毕业设计
- python-pandapower电力系统短路电流计算(算例3:探索一天的最佳电网运行方式))
- 今日头条开通,分享我爱的数码科技
- 我爷爷来了都能看懂的数据库主键,候选键,外键,非空和check的几种约束方式及使用方法
- 逻辑运算符 与、或、非
热门文章
- 《天下无贼》精彩台词一览表
- JAVA语言程序设计(基础篇) 第十版——第十章 面向对象思考 (参考答案)
- 用HTML+CSS+JS做一个漂亮简单的游戏网页——全屏游戏美术大赛作品(4个滚动页面)
- 【面试】蚂蚁金服4面题目
- matlab blas加载错误,【求助】在MATLAB中通过MEX调用BLAS
- java创建byte数组_java byte[]生成
- 信号隔离器解决干扰的方法
- 筑智建—中职土建类专业BIM装配式建筑育人模式师资培训圆满完成
- placeholder的样式设置和竖杠的样式
- 评价回归模型的一个新指标:CCC系数