Java 如何禁用ACRA的日志记录

Java 如何禁用ACRA的日志记录,java,android,logging,android-logcat,acra,Java,Android,Logging,Android Logcat,Acra,我正在应用程序中使用ACRA进行崩溃报告。(简而言之,ACRA是向开发人员发送崩溃报告的工具。) 即使在发布版本中,我也可以在设备的logcat中看到它的日志(例如,当它发送崩溃报告时,它会发送许多带有“ACRA”标记的日志行) 有没有办法禁用它的日志记录 基于下面的评论,让我再次强调:我要求禁用ACRA本身的日志记录。这个问题与ACRA崩溃或应用程序崩溃期间的系统日志无关 我认为最好是提供一个关于我的意思的例子: 04-13 02:33:50.980: D/ACRA(4560): Using

我正在应用程序中使用ACRA进行崩溃报告。(简而言之,ACRA是向开发人员发送崩溃报告的工具。)

即使在发布版本中,我也可以在设备的logcat中看到它的日志(例如,当它发送崩溃报告时,它会发送许多带有“ACRA”标记的日志行)

有没有办法禁用它的日志记录

基于下面的评论,让我再次强调:我要求禁用ACRA本身的日志记录。这个问题与ACRA崩溃或应用程序崩溃期间的系统日志无关

我认为最好是提供一个关于我的意思的例子:

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

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

Downvoter,您能给我一些指导吗?我的开发者问题出了什么问题?我检查了所有ACRA文件,但没有找到任何东西。我相信开发人员有正当的需要防止发布版本向用户公开其崩溃报告细节。甚至谷歌也建议在发布的应用程序中禁用自己应用程序的logcat日志记录。@ChrisStratton:你误解了我的意思。这个问题与ACRA发送的坠机报告无关。此外,当ACRA崩溃时,它与系统日志无关(它不会崩溃,工作正常)。再次强调:问题是在logcat中禁用ACRA自己的详细日志记录。为此,如果您无法从文档中找到它,那么我建议您查看ACRA源代码,看看这些消息来自何处,是否已经有任何方法将它们关入,或者是否需要添加一个。Downvoter,能给我一些指导吗?我的开发者问题出了什么问题?我检查了所有ACRA文件,但没有找到任何东西。我相信开发人员有正当的需要防止发布版本向用户公开其崩溃报告细节。甚至谷歌也建议在发布的应用程序中禁用自己应用程序的logcat日志记录。@ChrisStratton:你误解了我的意思。这个问题与ACRA发送的坠机报告无关。此外,当ACRA崩溃时,它与系统日志无关(它不会崩溃,工作正常)。再次强调:问题是在logcat中禁用ACRA自己的详细日志记录。为此,如果您无法从文档中找到它,那么我建议您查看ACRA源代码,看看这些消息来自何处,以及是否有任何方法可以将它们关入其中,或者,如果您需要添加一个,那么该部分不涉及在ACRA报告中包含系统日志吗?我需要的是禁用ACRA本身的日志记录。这与它的报告本身无关。这一节不涉及在ACRA报告中包含系统日志吗?我需要的是禁用ACRA本身的日志记录。这与报告本身无关。