项目进入开发阶段了,昨天做完了公共的数据库访问层,今天开始做日志框架
原本设想的方案是导入slf4j+logback,结果dalvik转编译没成功。后来又想自己写个日志框架,但是觉得项目时间这么紧,要想很好的解决并发、死锁等问题,时间会比较赶,就放弃了。现在想了一个办法,就是用一个后台的Service,把Log组件记录的日志信息给捞出来,写到文件里
于是先熟悉了一下android的日志框架和logcat命令,在这里总结一下
首先android提供的日志框架的界面很简单,就是一个Log类,里面的方法包括i()、w()、d()什么的,和log4j、logback等常见的日志框架都差不多,这不过Log类做了一些精简,去掉了配置日志格式、路径、父子关系等
只有2个方法需要重点说明一下:
一个是getStackTraceString(Throwable tr),这个方法是传进去一个异常对象,返回一个String的字符串。其实这个方法一般不会直接用到
另一个是w(String tag,String msg,Throwable tr),这个方法比一般的w(String tag,String msg)多传了一个Throwable类型的参数,内部会自动调用上面说的getStackTraceString()方法,把message和异常栈都记录下来。所以在记录异常日志的时候,这个方法是比较好用的
接下来介绍一下logcat命令:
1.adb logcat
这行命令会打印日志信息,并且是阻塞的,有新的日志信息,都会立刻在屏幕上打印出来
2.adb logcat -d
这行命令也是打印日志信息,不同在于,加上-d参数会退回到命令行模式,不阻塞
3.adb logcat -g
这行命令是显示日志缓冲区的大小和位置
4.adb logcat -c
这行命令是清除日志
5.adb logcat -v [brief,process,tag,thread,raw,time,threadtime,long]
这行命令是设置日志的显示格式,一般比较常用的是adb logcat -v time,因为会显示时间
6.adb logcat -d -v time -s [TAG]:[Level]
这行命令是关键了,举个实际例子,adb logcat -d -v time -s MainActivity:I
这个命令会对日志进行过滤,只显示出级别是I以上,并且TAG标签是MainActivity的日志
最后项目记录日志的方式,就采用Log组件进行记录,然后通过logcat命令,把日志信息捞到文件里并保存
PS:Log是在android.util.log包里,原本以为android就只提供了这个日志框架。。。可是刚刚突然又发现,还有一个包java.util.logging,里面也提供了另外一种日志框架,而且似乎比较强大,可以通过FileHandler类,直接把日志信息记录到文件里(Handler就是类似于log4j和logback中appender的组件)。所以还要研究一下,如果这种方式更好的话,可以考虑用这个框架来实现日志
分享到:
相关推荐
- **启动LogCat**: 通过Android SDK的`adb logcat`命令可以在终端中启动LogCat,连接到设备或模拟器后,将实时打印日志信息。 - **过滤器**: 可以通过指定标签(tag)或优先级来过滤日志,例如`adb logcat *:V ...
LogCat是Android系统中的一个日志记录服务,它收集应用程序和其他系统组件产生的日志消息。这些消息通常以文本形式存在,包括优先级(如V、D、I、W、E)、标签、线程ID和消息内容。由于编码问题,LogCat在默认情况下...
当然,根据需求,你可以调整logcat命令的参数,如改变日志级别或过滤特定标签。 此外,如果在开发过程中需要持续收集logcat日志,可以考虑使用第三方库,如`android-log-collector`,它可以创建一个服务,持续捕获...
在Android开发中,Logcat是一个不可或缺的工具,用于收集应用程序和其他系统组件的日志输出。它提供了查看、过滤和分析系统调试信息的能力。以下是对`Android的Logcat详细用法`的详细说明: 1. **使用logcat命令**...
#### 五、logcat命令的高级用法 除了基本的日志查看功能外,`logcat`还支持更多的选项和参数,可以帮助开发者更加高效地管理和查看日志。 ##### 1. 命令选项 - `-f <filename>`:将日志输出到指定文件。 - `-r []...
在Android开发中,Logcat是调试应用程序不可或缺的工具,它记录了系统和应用的日志信息。本教程将详细介绍如何将Logcat的输出显示在手机屏幕上,以及如何将这些日志保存到本地文件,以供后续分析。我们通过一个名为...
本文将详细讲解如何利用OkHttp的请求拦截器(Interceptor)实现请求的拦截并打印日志到logcat,这对于调试和监控网络请求极其有用。 首先,我们来了解什么是OkHttp的Interceptor。Interceptor是OkHttp框架中的一个...
它是Android系统提供的一种命令行工具,用于收集应用程序和其他系统组件的log信息,帮助开发者跟踪程序运行状态,定位和解决问题。本文将详细介绍LogCat的使用方法、过滤器设置以及在代码中的使用技巧。 ### 1. ...
LogCat是Android开发中的一个重要工具,它用于收集和查看应用程序及系统组件的日志信息,帮助开发者诊断和调试问题。在Android开发过程中,LogCat能够提供关键的反馈,尤其是在测试和优化代码时。以下是对LogCat工具...
这是一个Android 上 效率极高的 Log 工具,主要功能为控制不同级别的Log输出,Log信息保存到文件、打印行号、函数调用、Json解析、点击跳转、多标签Tab 等功能 打印行号、函数调用、Json解析、点击跳转 参照KLog of ...
- **结构化日志**: 相比Android自带的Logcat,Log4j可以提供更规范的日志格式,方便后期分析和调试。 - **可扩展性**: 通过插件机制,Log4j可以轻松添加新的Appender,如发送日志到远程服务器,或者集成到其他日志...
总结起来,Android的日志打印是一个强大的调试工具,通过合理使用`Log`类,配合LogCat或第三方工具,开发者可以有效地定位和解决问题。在开发过程中,理解日志系统的运作方式,掌握日志筛选和管理技巧,将极大提高...
Android的Log机制主要运行在以下几大组件之间: - **AppVMs**:应用程序虚拟机,负责生成日志信息。 - **ADB Device Daemon**:与AppVMs交互,处理并输出日志信息。 - **ADB Host Daemon**:运行在PC端的应用调试...
Log4J是Java世界里广泛使用的日志框架,而在Android中,虽然原生的日志系统(Logcat)已经足够强大,但有时为了更高级的功能和更好的日志管理,开发者会选择集成Log4J。本文将深入探讨如何在Android环境中使用Log4J...
此外,还有许多第三方工具如DDMS(Dalvik Debug Monitor Service)和Android Studio的Logcat视图,它们提供了更友好的界面和更强大的分析功能。 5. 日志优化与最佳实践: - 适度使用日志:避免在性能关键路径上...
### 二、logcat命令用法 1. `logcat -c`: 清空设备或模拟器上的所有日志信息。 2. `logcat -d`: 显示当前的日志信息,只打印一次,然后停止。这对于快速浏览日志很有帮助,特别是在没有过滤器时。 3. `logcat -f ...
可以通过`Log.d()`, `Log.i()`, `Log.w()`, `Log.e()`等方法输出不同级别的日志,然后通过`adb logcat`命令在开发环境中查看这些日志。 总结一下,通过JNI在Android中执行shell命令涉及到以下几个步骤: 1. 在Java...
Logcat是Android系统中的一个核心组件,它可以收集系统级和应用级的日志消息。这些消息按级别分类,包括VERBOSE(V)、DEBUG(D)、INFO(I)、WARNING(W)、ERROR(E)和FATAL(F),其中VERBOSE级别最低,FATAL...
为了获取Android 12的开机log,通常需要通过USB连接设备到电脑,并使用adb工具的`logcat`命令,或者直接在设备上使用终端模拟器读取。由于描述中提到是“串口log”,因此可能需要特定的串口调试工具,如USB转串口...
3. **Androidlogger插件**:Androidlogger插件为Notepad++添加了查看和解析Android Logcat日志的功能。Logcat是Android系统中的一个命令行工具,用于记录应用程序和系统服务的调试信息。通过这个插件,开发者可以...