自定义日志报告 - ACRA Android

时间:2012-06-22 11:11:57

标签: android acra

我正在使用ACRA for Android app这样

@ReportsCrashes(formKey = "dEpU12345lRZYjFtOUxMVHl4MFpMdnc6MQ",  mailTo = "issues@xyz.com",
    customReportContent = { ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL, ReportField.CUSTOM_DATA, ReportField.STACK_TRACE, ReportField.LOGCAT },                
    mode = ReportingInteractionMode.TOAST,
    resToastText = R.string.crash_toast_text)

它与Log cat一起完美地发送崩溃报告。它默认发送所有最后200行logcat和日期。但我想自定义它只发送我的应用程序的最后100个日志cat消息与日志级别i或d。怎么做。

通过以下链接

https://github.com/ACRA/acra/wiki/AdvancedUsage#adding-logcat-eventlog-or-radiolog-extracts-to-reports

我做了这样的改变

@ReportsCrashes(formKey = "dEpU12345lRZYjFtOUxMVHl4MFpMdnc6MQ",  mailTo = "issues@xyz.com",
    customReportContent = { ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL, ReportField.CUSTOM_DATA, ReportField.STACK_TRACE, ReportField.LOGCAT },
    logcatArguments = { "-t", "100", "-v", "long","test:I" ,"*:D","*:S"},        
    mode = ReportingInteractionMode.TOAST,
    resToastText = R.string.crash_toast_text)

即使我打印了一些标记为“test”和级别为“i”的日志消息,并且在我的应用程序中已知崩溃之前管理它们以进行打印,我将获得空的logcat。我想要只有我的应用程序的日志消息与级别i或d与ACRA,如何实现这一点。在此先感谢。

1 个答案:

答案 0 :(得分:2)

以下适用于D级日志记录。我的proguard剥离了生产部署的V和I级别。我使用以下代码更新日志

Log.d("YOUR_TAG_HERE", "Some message here");

并且ACRA配置为

logcatArguments = { "-t", "200", "-v", "long", "ActivityManager:I", "YOUR_TAG_HERE:D", "*:S" }

并且不要忘记更新添加必要权限的AndroidManifest.xml文件

<uses-permission android:name="android.permission.READ_LOGS" />

我的图书馆项目遇到了麻烦,我的READ_LOGS权限丢失了。我得到随机结果,直到我将READ_LOGS权限添加到最终项目(而不是库项目)。