我有一个程序来读取日志,并根据某些过滤器将日志保存到数据库。
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
而且我也无法在启动进程之前清除日志缓冲区,因为它会清除未记录的日志。(在杀死应用程序和启动应用程序/监控日志进程之间生成的日志)