以编程方式从Android中的日志缓冲区中识别读取日志

时间:2017-01-11 10:57:01

标签: android logging runtime clear android-logcat

我有一个程序来读取日志,并根据某些过滤器将日志保存到数据库。

private static final String LOGCAT_EVENTS_CMD = "logcat -b events -v time";
try { 
        EventProcess = Runtime.getRuntime().exec(LOGCAT_EVENTS_CMD);
        BufferedReader eventBufferedReader = new BufferedReader(new InputStreamReader(
                EventProcess.getInputStream()));
        String line = "";
        while ((line = eventBufferedReader.readLine()) != null) {
            onLogFetched(line);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

但有时android会杀死我的应用程序,我的应用程序会自动重启START_STICKY。在这种情况下,已经读取的日志再次被读取并再次保存到数据库中。

我想要一段代码来限制/识别已读取的日志。

为了清除android中的日志缓冲区,我们的命令如下: -

adb logcat -c

而且我也无法在启动进程之前清除日志缓冲区,因为它会清除未记录的日志。(在杀死应用程序和启动应用程序/监控日志进程之间生成的日志)

0 个答案:

没有答案