Android之LogUtil
提供debug与release的时候是否屏蔽打印信息,把信息选择性的进行保存,可以是否自动保存crash的堆栈信息。来自github上的一个开源项目,https://github.com/syxc/LogUtil/blob/master/src/org/syxc/util/LogUtil.java
这里我亲自测试他的功能,并且自定义更多功能及做相应的优化,并且打成一个jar的形式。
LogUtil.logoff = false 屏蔽打印
LogUtil.level = Log.ERROR 指定把高于或等于Error的信息保存到sdcard文件,因为最高的error权限是6,也就是说这里指定为大于6,即使是错误信息也不会写入sdcard里面。
LogUtil.saveDirName = "/xxx/log/" 目录名字,任意指定,如果不指定就在log目录下
以上三行推荐在Application的onCreate上输入
LogUtil.trace(int type , String tag , String msg) type:log的类型(error,warn等等) tag:输出标志 msg:输出日志
LogUtil.trace(int type , String tag , String msg , boolean isContinueWrite) type:log的类型(error,warn等等) tag:输出标志 msg:输出日志 isContinueWrite:默认是true,即是上面没有这个参数的方法, 表示继续在原有文件写入,如果是false则创建一个新的覆盖原来的它。
如果原来并没有创建过,则无论是false还是true都会创建一个新文件。
GlobalExceptionHandler globalExceptionHandler = LogUtil.processGlobalException(Application app, boolean isWriteIntoFile) app:传入的是Application对象并且写入sdcard卡 isWriteIntoFile:true表示写入sdcard卡,false则不写入。
globalExceptionHandler.setUncatchExceptionListener() 这个回调可以处理程序崩溃后自定义自己的操作,如上传错误信息,保存数据信息等等操作。
因为涉及到对sdcard的写入,所以还需要在AndroidManifest.xml加上以下权限:
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
上传自已修改后的源文件:androidLogUtil.zip
这个是上面的jar包:androidUtil的jar包.zip
Android之LogUtil的更多相关文章
- Android仿人人客户端(v5.7.1)——个人主页(三)
转载请标明出处:http://blog.csdn.net/android_ls/article/details/9405089 声明:仿人人项目,所用所有图片资源都来源于其它Android移动应用,编 ...
- Android仿人人客户端(v5.7.1)——新鲜事之完整篇
转载请标明出处: http://blog.csdn.net/android_ls/article/details/9228083 声明:仿人人项目,所用所有图片资源都来源于其它Androi ...
- TraceView进行性能分析
一.TraceView概述 TraceView 是 Android 平台配备一个很好的性能分析的工具.它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到 method. 详细内容参考 ...
- Easy Tag Write(2)
package skyseraph.android.util.nfc; import com.google.common.collect.BiMap; import com.google.common ...
- Easy Tag Write(1)
package skyseraph.easytagwrite; import skyseraph.android.util.CustomDialog; import skyseraph.android ...
- activity-intent-startActivity-startActivityResult
一. Intent和startActivity 1.在一个Activtiy中可以使用startActivity()去开始另一个制定的Activity 但在android3.0(是针对平板出的产品)之后 ...
- ViewPager中使用自定义的ListView实例
这篇内容是上一篇的延续,因为在上一篇的测试ViewPager成功了,才能实现这一篇的和ListView合在一起使用 效果图如下: 不愿意说理论,直接上代码 1.清单文件 activity_main.x ...
- FileProvider的使用及应用更新时提示:解析包出错、失败等问题
Android 7.0以上的版本更新采用系统自带的DownloadManager更新 DOWNLOADPATH ="/download/" https://www.jianshu. ...
- Android 常用工具类之LogUtil,可以定位到代码行,双击跳转
package cn.utils; import android.util.Log; public class LogUtils { public static boolean isDebug = t ...
随机推荐
- Python全栈开发之17、tornado和web基础知识
一.web基础知识 学习web框架之前,先来看一下web基础知识,首先要明白其本质就是socket,用户对应一个socket客户端,但是如果从socket开始开发web应用程序那么效率太了,正确的做法 ...
- IDEA导入eclipse项目并部署运行完整步骤(转发)
首先说明一下:idea里的project相当于eclipse里的workspace,而idea里的modules相当于eclipse里的project 1.File-->Import Proje ...
- JAVAEE——宜立方商城09:Activemq整合spring的应用场景、添加商品同步索引库、商品详情页面动态展示与使用缓存
1. 学习计划 1.Activemq整合spring的应用场景 2.添加商品同步索引库 3.商品详情页面动态展示 4.展示详情页面使用缓存 2. Activemq整合spring 2.1. 使用方法 ...
- C# 非模式窗体show()和模式窗体showdialog()的区别
对话框不是模式就是无模式的.模式对话框,在可以继续操作应用程序的其他部分之前,必须被关闭(隐藏或卸载).例如,如果一个对话框,在可以切换到其它窗 体或对话框之前要求先单击"确定"或 ...
- python functools.wraps
我们在使用装饰器的时候,有些函数的功能会丢失,比如func.__name__,func.__doc__,func.__module__ 比如下面这个例子: In [16]: def logged(fu ...
- [BZOJ4592][SHOI2015]脑洞治疗仪(线段树)
线段树基础操作题,唯一需要思考下的是将区间的前k个0覆盖为1. 线段树上二分,先递归到左子树覆盖,回溯时返回还剩多少个0未被覆盖,在根据这个信息递归到右子树.注意特判k=0的情况. 要维护的信息有:区 ...
- Codedforces 1076G Array Game 线段树
题意 现在cf上看题意真nm麻烦,有道网页翻译和谷歌翻译鬼畜的一匹 两个人在玩一个游戏. 有一个有\(n\)个数序列\(B\),一开始有一个棋子在\(B\)的第一个位置. 双方轮流操作,第一次操作前将 ...
- Spring AOP笔记
AOP的核心概念 AOP(Aspect-Oriented Programming)面向切面编程可以实现横切点与他们所影响的对象之间的解耦.如将公共的日志.权限.事务等业务隔离出来,但不影响原来程序的逻 ...
- Gunicorn配置部分的翻译
写在前面,虽然翻译得很烂,但也是我的劳动成果,转载请注明出处,谢谢. Gunicorn版本号19.7.1 Gunicorn配置 概述 三种配置方式 优先级如下,越后的优先级越大 1.框架的设置(现在只 ...
- Vue-router浅识
一.router-link及router-view :用来做导航,通过传入to属性来指定链接 :用来做路由出口,路由匹配到的组件都会渲染在这里 const router = new VueRouter ...