Когда я запускаю приложение, я запускаю процесс 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
?