2016-06-30 15 views
1

これは私の最初の質問です。技術についてのアドバイスが役に立ちます。 :)Androidデバイス上のlogcatのファイルへの保存をプログラムで停止する方法はありますか?

背景:限られたユーザーグループで使用されるアプリケーションに取り組んでおり、決して店舗に置くことはありません。アプリケーションは時にはクライアントデバイスにいくつかの問題を抱えていることがあり、デバイスにアクセスできないのでlogcatに完全にアクセスすることは非常に便利なようです。ユーザーに「デバッグ」アプリケーションバージョンを提供しなければならないことは分かっています。問題はありません。

私はユーザに(例えば私の要求で)logcatをファイルにリダイレクトできる機能を実装したいと思います。これを私に送ることができます。私はすでにファイルにリダイレクトを実装していますが、ファイルを保存するのを非常に速くするため、ファイルを保存しないようにする必要があります。ファイルにリダイレクトするための

私は

String cmd = "logcat -f " + file.getAbsolutePath(); 
Runtime.getRuntime().exec(cmd); 

を使用しています。しかし、それが有効になっていたら、私はそれを無効にすることはできません。私はファイルへの保存を中止することを意味します。私は-cオプションで運がないと試しました。 誰も私が何ができるか考えていますか?

答えて

0

stdout(デフォルト)に印刷することに戻すことができます。

String cmd = "logcat -f stdout"; 
Runtime.getRundtime().exec(cmd); 
+0

これはうまくいきません...おそらくそれはまったく不可能でしょうか?つまり、印刷ログをファイル化する方法と、それを無効にする方法についての情報はたくさんあります。 BTWは、logcatをファイルにリダイレクトした後も、Android Studioのlogcatでそれを見ることができます。 – bydziek

+0

@bydziekはい、通常のlogcat呼び出しでもファイルにリダイレクトされたlogcatトレースを見るのは正常です。彼らは単なるコピーです。 Logcatにはstdout(コンソール)またはファイルで出力可能なリングバッファがあります。 logcatを使用した後、バッファは空になりません。 –

0

私の問題は解決されていないため、開いたままです。私はちょうど役に立つかもしれないので、ここに私の回避策を残したいと思う。

私はlogcatの印刷をstdoutに任せ、それをファイルにダンプし、ボタンをクリックしてクリアします。この解決策にはいくつかの利点があります。なぜなら、logcatは名前のタイムスタンプ付きのファイルで区切られているので、問題が発生したときに問題を探すことができます。

0

「ps | grep logcat」を呼び出して、そのPID「kill pid」で殺すことができます。

関連する問題