LogCatの内容をファイルに保存するには?

私は(Log.d()を使って)デバッグ文字列を追加し、logCatの内容からコンテキスト内でそれらを見たいと思っています。 LogCatの「保存」アイコンには「選択したアイテムを保存」のヒントがありますが、コンテンツ全体を保存するか、コンテンツ全体を選択するための素早い方法が必要ですが、その方法はわかりません。

23

10 答え

Log catの内容をファイルに保存するには、アンドロイドのsdkのプラットフォームツールフォルダにリダイレクトし、以下のコマンドを実行する必要があります

adb logcat > logcat.txt

platform-toolsフォルダ内の "logcat.txt"という名前のファイルが作成されます。あなたの興味に応じて名前を変更することができます。楽しい

30
追加された
実際には、私の意味は次のとおりです。Eclipseには、「ハイライトされたアイテムを保存する」などのアイコンが表示されます。私はちょうどすべての項目を強調する方法を思っています。可能であれば、私は「外に出す」ことを望んでいません。 Eclipse IDEの方が便利です。
追加された 著者 B. Clay Shannon,
アプリケーションごとにソートする方法は?
追加された 著者 NickUnuchek,
adb logcat -f logcat.txt >ドキュメントを参照してください。
追加された 著者 Franklin Yu,
@FranklinYu残念なことに、logcatへの-fオプションは、開発ホストではなくアンドロイドデバイスのファイルシステム上にのみファイルを作成できるようです。 参照
追加された 著者 Marklar,

あなたはあなたが探している答えを得ていないのですか?

あなたが望むことをするための2つの方法: 1)logcatメッセージウィンドウを右クリックし、すべて選択を選択します。その後、保存されたすべてのログカットメッセージがそのウィンドウに表示されます(表示されていないものも表示されます)。
2)フォーカスがlogcatのメッセージウィンドウにある場合、control-Aと入力すると、すべてのメッセージが選択されます。その後保存するなど

16
追加された

LogCatログをデバイス上にプログラムで保存するには、次のコードを使用します。

String filePath = Environment.getExternalStorageDirectory() + "/logcat.txt";
Runtime.getRuntime().exec(new String[]{"logcat", "-f", filepath, "MyAppTAG:V", "*:S"});

"MyAppTAG:V" sets the priority level for all tags to Verbose (lowest priority)

"*:S" sets the priority level for all tags to "silent"

logcatの詳細については、こちらをご覧ください。

14
追加された
パッケージ名でフィルタにログを表示する時間を追加する方法。私はRuntime.getRuntime().exec(新しいString [] {"logcat"、 "-f"、 "time"、filePath})のようなものを試します。
追加された 著者 kamal_tech_view,
ありがとう@yuralife、私もそれをやった、どのように我々はパッケージ名でフィルタリングすることができます
追加された 著者 kamal_tech_view,
@kamal_tech_viewこれはうまくいくはずです。 Runtime.getRuntime()。exec(new String [] {"logcat"、 "-v"、 "time"、 "-f"、filePath});これは私のコードです。
追加された 著者 yuralife,

Dinesh Prajapati の回答に加えて、

 adb -d logcat :

-dはデバイス用で、エミュレータのログではなく-eを選択することもできます。ログレベルは a/d/i/v/e/w など

あなたの命令は次のようになります:

adb -d logcat com.example.example:V > logfileName_WithPath.txt
9
追加された
ありがとう男:)
追加された 著者 Pankaj Nimgade,

コマンドプロンプトを開き、adb.exeを探します(あなたのandroid-sdk/platform-toolsにあります)

adb logcat -d > /filename.txt

パスを省略すると、現在の作業ディレクトリにlogcatが保存されます

-dオプションは、現在の内容をダンプしてから終了することを示します。 notepad ++がこのファイルを開くようにして、すべてを適切な読み取り可能な形式で取得できるようにします。

8
追加された
歓迎しますので、あなたの答えにコードマークアップを入れて読みやすくしてください。
追加された 著者 Nima Derakhshanjan,

logcat ツールを使用して -d または< code> -f スイッチと exec() メソッド。

3
追加された
String filePath = folder.getAbsolutePath()+ "/logcat.txt"; 
Runtime.getRuntime().exec(new String[]{"logcat", "-f", filePath, "MyAppTAG:V", "*:E"});
2
追加された

デバイスのコンソールウィンドウにいて、Teratermを使用している場合は、メニューからFile |ログに保存され、自動的にファイルに保存されます。

1
追加された

プログラム的アプローチのヒント:

String filePath = Environment.getExternalStorageDirectory() + "/logcat.txt";
Runtime.getRuntime().exec(new String[]{"logcat", "-f", filepath, "MyAppTAG:V", "*:S"});

これにより、logcatと提供されたファイルの間に連続した出力ストリームが開きます。これにより、execによって返されたプロセスをwaitForするか、または指定されたファイルが時期尚早に破棄された場合に例外が発生すると、デッドロックが発生する可能性があります。

私は " - d"フラグを含むだけでlogcatをダンプし、上記の動作を妨げる接続を閉じることを発見しました。

1
追加された

過去30分以内に表示されたログのみをタイムスタンプまたは別の設定時間内に表示する場合は、追加のヒントを追加してください。システムに合わせて日付形式を調整します。これはUbuntu 16.04LTSで動作します:

adb shell logcat -d -v time -t "$(date '+%m-%d %H:%M:%s.%3N' -d '30 minutes ago')" > log_name.log
1
追加された