android - ファイル保存 - logcat 絞込み




adb logcat-f log.txtエラー:出力ファイルを開くことができませんでした:読み取り専用ファイルシステム (2)

adb logcat -d > log.txt使用します。

これにより、開発マシンにログが書き込まれます。

Windows(win7)では、USB経由で実際の電話機をデバッグしています。私はPC上のファイルにlogcatログをダンプします。 データの速度は、eclipseで使用可能なものを超えています。 私はすべてのフィルタリングされていないログを必要とします。

logcatのコマンドラインの指示によると、これは簡単であるはずです

logcat -f logfile.txt

Windowsのコマンドラインでadb logcat -f logfile.txtを使用しています

しかし、これは常に

couldn't open output file: Read-only file system

ファイルシステムは読み取り専用ではありません 。 ファイルの作成と書き込みはadb logcat > logfile.txtに動作し、 adb logcat > logfile.txtなどの粗リダイレクションも期待通りに機能します。 ログファイルへのパス全体を指定しても差はありません。

私はlogcatの-nオプションと-rオプションを利用したいが、 -fオプションが必要である。

助言がありますか?

ノート。 この質問は、Ubuntuで尋ねられた質問に近いものですが、Windows上で私にとって有益な答えはありません。また、私がすでに試したこともありません。 SOに関する最も類似した参考文献は、単に-f filenameが動作するはずであるというヘルプページを引用しています。

有用なコメントと回答で最新の状態に保つように編集されました。


残念なことに、 logcatへの-fオプションは、 開発ホストではなくアンドロイドデバイスのファイルシステム上にのみファイルを作成できるように見えます

裸のファイル名を指定すると、デバイスのルートディレクトリにファイルを作成しようとする可能性が高くなりました。通常、書き込み可能ではありません。

デバイス上にファイルを作成する場合は、書き込み可能な場所を指定します(適切なパスはデバイスとビルドによって異なりますが、現在の例を参照してください)。

adb logcat -f /mnt/sdcard/log.txt

さらに説明すると、 adb logcatを入力すると、 adb shell logcatと入力した場合と同様に、デバイスの/system/bin/logcatプログラムが実行されます。 ADBは、このプログラムからの標準出力またはエラー出力をホストマシンに簡単に渡すことができますが、デバイス上で実行されているプログラムがADBに開発マシンでファイルを作成するために使用できるデバイス側APIはありません。 ファイルへのセーブおよびローテーション操作は、開発マシン上で実行されるADBの部分に実装することは可能ですが、現在どのように動作しているのかは分かりません。

開発マシンでシェルリダイレクトを使用するbonitarunnerの解決策は簡単な答えです。 -r-nオプションに似たリミット機能とローテーション機能を実装するホスト側のフィルタプログラムやスクリプトを思いつくことができます。





android-logcat