Android logcat
2016-05-30 15:56
537 查看
logcat是Android中一个命令行工具,可以用于得到程序的log信息。
[adb] logcat [<option>] ... [<filter-spec>] ...
[options]命令包括如下选项:
-s 设置过滤器,例如指定 '*:s'
-f <filename> 输出到文件,默认情况是标准输出。
-r [<kbytes>] Rotate log every kbytes. (16 if unspecified). Requires -f
-n <count> Sets max number of rotated logs to <count>, default 4
-v <format> 设置log的打印格式, <format> 是下面的一种:
brief process tag thread raw time threadtime long
-c 清除所有log并退出
-d 得到所有log并退出 (不阻塞)
-g 得到环形缓冲区的大小并退出
-b <buffer> 请求不同的环形缓冲区 ('main', 'system', 'radio', 'events',默认为"-b main -b system")
-B 输出log到二进制中。
过滤器的格式是一个这样的串:
<tag>[:priority]
其中 <tag> 表示log的component, tag (或者使用 * 表示所有) , priority 从低到高如下所示:
V Verbose
D Debug
I Info
W Warn
E Error
F Fatal
S Silent
打开logcat会发现有很多不同颜色的信息代表不同的级别
Log.v() -------------------- VERBOSE
Log.d() -------------------- DEBUG
Log.i() -------------------- INFO
Log.w() -------------------- WARN
Log.e() -------------------- ERROR
以上log的级别依次升高,DEBUG信息应当只存在于开发中,INFO, WARN,ERROR这三种log将出现在发布版本中。
下面实战一下
运行后
发现Application列为空,解决办法:
在AndroidManifest.xml中添加android:debuggable="true"
继续修改代码
此时Application列又为空,不知怎样彻底解决
基本命令
logcat使用方法如下所示:[adb] logcat [<option>] ... [<filter-spec>] ...
[options]命令包括如下选项:
-s 设置过滤器,例如指定 '*:s'
-f <filename> 输出到文件,默认情况是标准输出。
-r [<kbytes>] Rotate log every kbytes. (16 if unspecified). Requires -f
-n <count> Sets max number of rotated logs to <count>, default 4
-v <format> 设置log的打印格式, <format> 是下面的一种:
brief process tag thread raw time threadtime long
-c 清除所有log并退出
-d 得到所有log并退出 (不阻塞)
-g 得到环形缓冲区的大小并退出
-b <buffer> 请求不同的环形缓冲区 ('main', 'system', 'radio', 'events',默认为"-b main -b system")
-B 输出log到二进制中。
过滤器的格式是一个这样的串:
<tag>[:priority]
其中 <tag> 表示log的component, tag (或者使用 * 表示所有) , priority 从低到高如下所示:
V Verbose
D Debug
I Info
W Warn
E Error
F Fatal
S Silent
打开logcat会发现有很多不同颜色的信息代表不同的级别
生成方法
事实上logcat的功能是由Android的类android.util.Log决定的,在程序中log的使用方法如下所示:Log.v() -------------------- VERBOSE
Log.d() -------------------- DEBUG
Log.i() -------------------- INFO
Log.w() -------------------- WARN
Log.e() -------------------- ERROR
以上log的级别依次升高,DEBUG信息应当只存在于开发中,INFO, WARN,ERROR这三种log将出现在发布版本中。
下面实战一下
package com.wuyudong.logcat; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.Menu; public class MainActivity extends Activity { static final String tag = "LOGCAT"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.v(tag, "hello"); } }
运行后
发现Application列为空,解决办法:
在AndroidManifest.xml中添加android:debuggable="true"
<application android:allowBackup="true" android:debuggable="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.wuyudong.logcat.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
继续修改代码
public class MainActivity extends Activity { static final String tag = "LOGCAT"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.v(tag, "hello"); Log.d(tag, "hello"); Log.i(tag, "hello"); Log.w(tag, "hello"); Log.e(tag, "hello"); } }
此时Application列又为空,不知怎样彻底解决
相关文章推荐
- android 避免OOM
- 【android】:android常用控件属性简介
- Android 获取当前日期算前一年、前一月、前一天Calendar
- 【android】:android如何实现对一个控件的监听
- AndroidStudio 编译问题org/gradle/api/publication/maven/internal/DefaultMavenFactory
- Android频道管理集成
- Android 状态栏通知Notification、NotificationManager详解
- Android自定义吐司(Toast)
- Java4Android第1课:第一个应用程序Hello world
- Android自定义View简介
- Android获取图片资源的4种方式
- Android版本判断
- Android版本判断
- Android 研发的源码
- .NET/android/java/iOS AES通用加密解密(修正安卓)
- Android中的AlarmManager的使用
- Android Studio 多渠道打包、自动版本号及 gradlew 命令的基本使用
- [置顶] Android必知必会-带列表的地图POI周边搜索
- IntentFilter的匹配规则
- android 解决asset下面文件太大报错问题