Как отключить логирование 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...

person Thomas Calc    schedule 12.04.2014    source источник
comment
Голосующий против, не могли бы вы дать мне совет? Что не так с моим вопросом разработчика? Я проверил всю документацию ACRA, но ничего не нашел. Я считаю, что это законная потребность разработчика не допускать, чтобы сборки выпуска раскрывали особенности отчетов о сбоях для пользователей. Даже Google рекомендует отключать ведение журнала logcat вашего собственного приложения в выпущенных приложениях.   -  person Thomas Calc    schedule 13.04.2014
comment
@ChrisStratton: вы меня неправильно поняли. Вопрос не имеет ничего общего с отчетами о сбоях, отправленными ACRA. Кроме того, не о системном журнале, когда происходит сбой ACRA (он не дает сбоев, он отлично работает). Опять же: вопрос в том, чтобы отключить собственное подробное ведение журнала ACRA в logcat.   -  person Thomas Calc    schedule 13.04.2014
comment
Для этого, если вы не можете понять это из документации, я предлагаю вам просмотреть источник ACRA и посмотреть, откуда приходят эти сообщения, и есть ли какой-либо метод, чтобы заблокировать их там, или если вам нужно будет добавить один.   -  person Chris Stratton    schedule 13.04.2014


Ответы (2)


Чтобы отключить ведение журнала 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.)

person Alexey Dmitriev    schedule 07.07.2014

Этот раздел «Включение / отключение системных журналов» может быть полезным - https://github.com/ACRA/acra/wiki/AdvancedUsage#enabledisable-system-logs

person arson92    schedule 12.04.2014
comment
Разве этот раздел не касается включения системных журналов в отчеты ACRA? Что мне нужно, так это отключить логирование самого ACRA. Это не имеет ничего общего с самими отчетами. - person Thomas Calc; 13.04.2014