Проверьте, запущен ли LogCat - PullRequest
0 голосов
/ 09 января 2019

Когда я запускаю приложение, я запускаю процесс logcat для сохранения данных регистрации на устройстве Android.

например, вот так.


    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
         Process process = Runtime.getRuntime().exec("logcat -c");
         File logDir = new File("pathToLogFile");
         process = Runtime.getRuntime().exec("logcat -f " + logFile.getAbsolutePath() + " " + Setting.getInstance().logKey + ":V *:E");
    }

Это отлично работает. За исключением случаев, когда действие запускается более одного раза: в файле журнала создается несколько строк для каждого события


    Log.d("some log entry");

создает эти записи в файле журнала

    01-09 16:04:15.942 24768 24883 D IDDT    : some log entry
    01-09 16:04:15.942 24768 24883 D IDDT    : some log entry
    01-09 16:04:15.942 24768 24883 D IDDT    : some log entry
    01-09 16:04:15.942 24768 24883 D IDDT    : some log entry

Мое образовательное предположение, что logcat -f все еще работает, когда действие воссоздается. Это означает, что каждый процесс logcat -f создает отдельную строку в журнале для каждого события. Как я могу исправить эту проблему? Есть ли способ проверить, запущена ли команда logcat -f?

...