如何禁用ACRA的日志记录

时间:2014-04-12 23:43:04

标签: java android logging android-logcat acra

我在我的应用中使用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...

2 个答案:

答案 0 :(得分:4)

要禁用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类。)

答案 1 :(得分:0)

本节"启用/禁用系统日志"可能会有所帮助 - https://github.com/ACRA/acra/wiki/AdvancedUsage#enabledisable-system-logs