3

我正在为这样的 Android 应用程序使用 ACRA

@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 条 log 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,如何实现这一点。提前致谢。

4

1 回答 1

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 权限添加到最终项目(而不是库项目)之前,我得到了随机结果。

于 2013-05-04T17:10:28.500 回答