Android Logcat缓冲区重定向正在重复

时间:2014-11-28 11:17:43

标签: java android logcat

我希望Logcat记录到我的应用程序中的文件。所以我使用这段代码将日志缓冲区重定向到文件(并且它可以工作):

    String filePath = Environment.getExternalStorageDirectory() + "/logcat.txt";
    try {
        // This line clears the previous logs
        Process process = new ProcessBuilder()
                .command("logcat", "-c")
                .redirectErrorStream(true).start();
        //TODO execute this once / double check this is active
        //each time this line is ran it will send another dump to the log file, 1, 2, 3, 4, etc.
        Runtime.getRuntime().exec(new String[]{"logcat", "-f", filePath, "-v", "time", "ActivityManager:W", "InvApp:I", "*:S"});
    } catch (IOException e) {
        e.printStackTrace();
    }

   Log.w("InvApp", "This is a message!");

每次运行此行时都会出现问题(每次启动应用程序时)都会挂起事件,因此在我的日志文件中我最终会遇到类似的事情:

Fist run:

[TIME] InvApp这是一条消息!

第二次运行:

[TIME] InvApp这是一条消息!

[TIME] InvApp这是一条消息!

第三轮:

[TIME] InvApp这是一条消息!

[TIME] InvApp这是一条消息!

[TIME] InvApp这是一条消息!

......依此类推。

如何确保此代码只执行一次,或取消/清除exec命令?

0 个答案:

没有答案