我在应用程序中使用ACRA进行崩溃报告。(简而言之,ACRA是用于将崩溃报告发送给开发人员的工具。)
即使在发行版本中,我也可以在设备的logcat中看到其日志(例如,当它发送崩溃报告时,它会发送许多带有“ ACRA”标签的日志行)。
有没有办法禁用其日志记录?
基于以下评论,让我再次强调:我要求禁用ACRA本身的日志记录。这个问题与ACRA崩溃或应用崩溃期间的系统logcat无关。
我认为最好是提供一个有关我的意思的示例:
04-13 02:33:50.980: D/ACRA(4560): Using custom Report Fields
04-13 02:33:51.170: I/ACRA(4560): READ_LOGS not allowed. ACRA will not include LogCat and DropBox data.
04-13 02:33:51.170: D/ACRA(4560): Writing crash report file 1667311131000.stacktrace.
04-13 02:33:51.200: D/ACRA(4560): About to start ReportSenderWorker from #handleException
04-13 02:33:51.200: D/ACRA(4560): Waiting for Toast + worker...
要禁用ACRA的日志记录,您可能要使用此ACRALog
接口的实现:
public class NoAcraLog implements ACRALog {
@Override
public int v(String tag, String msg) {
return 0;
}
@Override
public int v(String tag, String msg, Throwable tr) {
return 0;
}
@Override
public int d(String tag, String msg) {
return 0;
}
@Override
public int d(String tag, String msg, Throwable tr) {
return 0;
}
@Override
public int i(String tag, String msg) {
return 0;
}
@Override
public int i(String tag, String msg, Throwable tr) {
return 0;
}
@Override
public int w(String tag, String msg) {
return 0;
}
@Override
public int w(String tag, String msg, Throwable tr) {
return 0;
}
@Override
public int w(String tag, Throwable tr) {
return 0;
}
@Override
public int e(String tag, String msg) {
return 0;
}
@Override
public int e(String tag, String msg, Throwable tr) {
return 0;
}
@Override
public String getStackTraceString(Throwable tr) {
return null;
}
}
将此类的实例提供给ACRA
:
ACRA.setLog(new NoAcraLog());
这将禁用ACRA的所有日志记录,因为上述实现将无济于事。(仅供参考:通常ACRA使用AndroidLogDelegate
它将日志消息重定向到Log
该类。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句