How to send android app logs to remote server?
在我的应用程序中,我想发送日志以防崩溃到远程服务器。我添加了Try-Catch块,在Catch中我将日志发送到服务器。我想知道我应该抓住哪些例外。我需要日志,以防每次撞车,以便我能修复它。捕获所有异常是一个好的实践吗?
事先谢谢。
以下是我从其他伟大答案中提出的建议的汇总列表:
捕获所有未处理的异常。
创建一个实现
java.lang.Thread.UncaughtExceptionHandler 的ExceptionHandler 。可以使用此类自定义和记录错误。把这句话:你每一个
Activity 类的Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler(this)); 方法(在super() 之后)。有关详细信息,请参考Android异常处理最佳实践中的这个伟大答案。
在外部/外部运行的所有代码周围加上try/catch。(例如-使用第三方组件的代码)
在您知道的在某些情况下可能失败的所有代码周围附上"尝试/捕获"
- 当没有互联网连接时
- 在I/O操作期间
- 当有可能出现疯狂的用户输入时
- 当存在被零除的可能性时
在顶层使用try/catch,因为所有异常都会冒泡到顶层。因此,在内部函数中,如果需要,可以考虑使用
throw 异常。然后,在顶层捕获特定的异常,并在catch块中正确地对异常类型进行排序。(参考这个伟大的答案:如何使用Try-Catch进行异常处理是最佳实践对于UI,即使出现错误(例如,如果错误是由于没有Internet连接造成的),也应该通过提供应用程序的"有限功能"版本来提供"持续可用性"。
向用户报告过于急切的错误不是一个好主意。
持久性错误消息是错误的。用消息通知用户并让用户关闭/删除它。
参考1参考2参考3进一步阅读1进一步阅读2进一步阅读3
对于要远程记录未处理异常的android库,您可以查看以下内容:android remote stacktrace。
- 下载.jar文件。
- 将其添加到Java构建路径中。
添加Internet权限:使用权限android:name="android.permission.internet"
在活动或服务的
OnCreate 方法中,放置"exceptionhandler.register(this,"http://your.domain/path");- 在您的服务器上,放置这个PHP文件,您可以编辑它来扩展功能。
你可以用破烂药或布格森
https://mint.splunk.com网站/
https://try.crashlytics.com网站/