java applog_个人app如何收集用户日志
版权声明:本文为xing_star原创文章,转载请注明出处!
个人app如何收集用户日志,相信不少人对这个话题感兴趣,本文将结合自己的实际经历,分享下自己的做法。
用邮件收集用户上报日志
在上篇文章http://javaexception.com/archives/144 中,我提到了,客户端日志文件上传这一功能,对于个人开发者而言,个人app如何收集用户日志,值得思考下。先从bugly等第三方的bug收集讲起,他们这些只能收集部分日志信息,不完整,没有完整的上下文,也不利于分析问题,另外是crash或者是exception下才会上报日志,有些业务并不会发生crash或者是exception,这不满足自己的特定需求。如果是用日志文件的方式记录日志呢,这个好,可以有完整的日志,要考虑的就是日志如何上传的问题了。对于日志上传,如果有自己的服务器,那么也好处理,但是对个人开发者而言,还得配置下才能将日志上传到服务器,查阅也麻烦,有的并没有服务器,有没有低成本的实践方式呢,有的,可以考虑用邮件上传日志的方式。
这是在最近的一个app上实践的方案,不一定完美,但是目前适用于自己的app,如果用户量过于庞大,这种方式可能也不行,适合前期阶段。采用的是邮件上传日志文件的方式(日志文件是用xlog收集的日志),邮箱是在163上注册的新邮箱,通过授权码的方式,在客户端发送邮件到指定邮箱,不用担心账号密码泄漏。所有的日志都集中在邮箱中,查阅也相当方便。
先推荐一个开源项目,https://github.com/LillteZheng/ZMail,这个项目封装了邮件api,降低了开发者的使用成本。
app上的界面效果
关键代码
点击日志上传的核心代码如下:
private static boolean isUploadLog = false;private voiduploadLog() {if(isUploadLog) {
Toast.makeText(AboutActivity.this, "日志已上传成功", Toast.LENGTH_SHORT).show();return;
}
File file= new File(getFilesDir().getAbsolutePath() + "/log");if (!file.exists()) {return;
}
StringBuffer sbf= new StringBuffer("用户上传了客户端日志,请查收!n系统参数如下:n");
sbf.append("手机厂商:").append(SystemUtils.getDeviceBrand()).append("n")
.append("手机型号").append(SystemUtils.getSystemModel()).append("n")
.append("手机当前系统语言:").append(SystemUtils.getSystemLanguage()).append("n")
.append("Android系统版本号:").append(SystemUtils.getSystemVersion());
ZMailManager
.fromAddr("xxxxxx@163.com")
.nickName("微信好友检测助手")
.password("xxxxxx")//.host("smtp.163.com")//.isSSLvertify(false)//.port(25)
.subject("[微信好友检测助手日志上报]")
.content(sbf.toString())//.file(imageUrl)
.file(new String[]{getFilesDir().getAbsolutePath() + "/log"})
.toAddrs(new String[]{"xxxxxx@qq.com"})
.listener(newIEmailSendListener() {
@Overridepublic voidsendStart() {
showProgressDialog();
}
@Overridepublic voidsendFailed(String errorMsg) {
hideProgressDialog();
}
@Overridepublic voidsendSuccess() {
hideProgressDialog();
isUploadLog= true;
Toast.makeText(AboutActivity.this, "日志已上传成功", Toast.LENGTH_SHORT).show();
}
})
.send();
}
代码混淆配置:
-keep class javax.mail.** {*;}
-keep class javax.activation.** {*;}
-keep class com.android.zemaillib.** {*;}
-keep class com.sun.mail.** {*;}
-keep class com.sun.activation.registries.** {*;}
-dontwarn java.awt.**
-dontwarn javax.activation.**
参考资料:
其他:
zmail除了可以做日志收集,也可以用来实现用户意见反馈。
java applog_个人app如何收集用户日志相关推荐
- 基于Java的webapp_几乎所有基于Java的web app都需要Model 2 (part II) (转)
几乎所有基于Java的web app都需要Model 2 (part II) (转)[@more@] 几乎所有基于的 app都需要Model 2 当Web容器从客户端接收到一个请求时,控制流开始运行. ...
- java io null异常,java.io.IOException:所有收集器的初始化失败。最后一个收集器中的错误是:null...
我是MapReduce的新手,我试图找到问题的解决方案.我试图链接两个地图reduce作业.第一份工作正在执行,但在第二份工作上我是得到一个错误如下java.io.IOException:所有收集器的 ...
- 【hadoop】java 获取 yarn app 信息 报错 ConfiguredRMFailoverProxyProvider - Failing over to rm2
文章目录 1.概述 1.概述 java 获取 yarn app 信息 报错 ConfiguredRMFailoverProxyProvider - Failing over to rm2 2022-0 ...
- 【java干货】java怎么写APP
用Java(APICloud)开发手机APP 近几年手机开发非常流行,可是ios有自己的一套语言,Android虽然可以用Java开发但是也是要需要从google下载插件,总感觉不那么方便,作为Jav ...
- Java社交商城APP+小程序多功能B2B2C商城源码
Java社交商城APP+小程序多功能B2B2C商城源码 功能介绍 1)用户可通过邀请好友.签到赚取糖果: 2)用户可以通过平台获取想要的商品,领券购买并获取分佣提成: 3) 用户可以通过淘宝链接搜索商 ...
- 又有12款APP违规收集用户信息,下架整改
近日,工信部又通报了一批APP应用下架整改,企业违规收集用户信息何日是头? 2020年12月21日,工信部向社会通报了63家存在侵害用户权益行为APP企业的名单.截至目前,经第三方检测机构核查复检,尚 ...
- java 指定垃g1圾收集_【译】Java 14 Hotspot 虚拟机垃圾回收调优指南
本文主要包括以下内容:优化目标与策略(Ergonomics) 垃圾收集器实现(Garbage Collector Implementation) 影响垃圾收集性能的因素总堆(Total Heap) 年 ...
- 「镁客早报」屠呦呦入选“20世纪最伟大人物”;四部门联合治理APP违法收集使用个人信息...
Space X载人火箭完成静态点火实验:爱尔兰调查Twitter数据泄露事件. 1.屠呦呦入选"20世纪最伟大人物" 1月25日消息 据观察者网报道,本月初,英国BBC新闻网新版块 ...
- 「镁客早报」屠呦呦入选“20世纪最伟大人物”;四部门联合治理APP违法收集使用个人信息... 1
Space X载人火箭完成静态点火实验:爱尔兰调查Twitter数据泄露事件. 1.屠呦呦入选"20世纪最伟大人物" 1月25日消息 据观察者网报道,本月初,英国BBC新闻网新版块 ...
- java+uniapp对接app微信支付
java+uniapp对接app微信支付 1.准备工作 注册app APP接入微信支付,需要先将商户APP在微信开放平台进行注册,登记APP开发参数以生成APPID.具体操作步骤如下: 一.登录微信开 ...
最新文章
- Styling Alert controls in Flex using the StyleManager class and setStyle() methods
- 鸡兔同笼 n为总数,m为总腿数,a为鸡,b为兔
- mysql空间是什么格式_MySQL数据类型 - 空间数据类型 (6)
- C++ STL标准模板库(queue)
- 剑指offer 面试题49. 丑数
- Spring-jdbc-AbstractRoutingDataSource
- 探讨SQL Server 2005的评价函数
- 手贱拆笔记本清灰记录
- 透过 ASP.NET 和数据库读写图片
- 10010序列检测器的三段式状态机实现(verilog)
- Mnist数据集解析
- php用jspstudy怎么运行,JspStudy如何设置PHP根目录可编辑
- Python2.7利用xpath爬取韩寒博客(多线程版)
- H5上传从微信保存的图片提示格式不对
- UVa 10361 自动作诗机
- word中插入或更新自动目录后,正文内容也变成了目录的问题
- 关于win11右键的慢问题的建议
- TexturePacker 图片加密
- 四川锦城学院计算机专业好不,四川大学锦城学院计算机专业如何?
- android 获取粗略位置_android – 如何使用Wifi或GSM或GPS获取粗略的位置,以哪一个可用?...
热门文章
- python改错题重要的事情说三遍_5个很好的Python面试题问题答案及分析
- 安装RabbitMQ无法访问(http://localhost:15672)解决方案
- redis分布式锁学习总结
- 软件设计原则(一) 单一职责原则
- Java 注解Annotation总结二
- Spring Cloud Zuul路由网关(学习总结)
- mysql把A表的数据插入到B表
- 学习Scala:孤立对象的实现原理
- 练习1,从文件到数据库
- 使用 Document!X 为自己的dll生成一个漂亮的说明文档