gpt4 book ai didi

java - 如何禁用 ACRA 的日志记录

转载 作者:行者123 更新时间:2023-11-29 03:22:03 25 4
gpt4 key购买 nike

我在我的应用程序中使用 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 接口(interface)的此实现:

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 类。)

关于java - 如何禁用 ACRA 的日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23037462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com