提供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