Androidデバイスのタイムスタンプをhh:mm:ss:SSの形式で取得する必要があります。LogcatofEclipseに表示されている時刻を表示できます。それはコンピューターの時間ですか、それともAndroidデバイスの時間ですか?
6 に答える
デバイスからログを取得するためにターミナルで使用adb logcat -v threadtime
します。これには日付と時刻が含まれます。
これらのログをテキストファイルにリダイレクトする場合は、ターミナルでコマンドを使用します。
adb logcat -v threadtime > folder_path_in_the_computer/filename.txt
Androidデバイスでアプリを実行している場合は、デバイスの時刻が出力されます。エミュレーターの場合は、コンピューターの時刻が表示されます。
ログの時刻をデバイスの時刻およびコンピューターの時刻と一致させるために、答えが見つかります。
を使用するlong
、threadtime
またはtime
logcat -v <format>
logcat
-v
コマンドラインでフラグに渡すことができるいくつかのフォーマットオプションがあります。こちらのドキュメントですべての形式を確認できます。
各オプションがどのように見えるかのサンプルを次に示します。これにより、ニーズに合ったオプションを決定できます。
brief
メッセージを発行しているプロセスの優先度、タグ、およびPIDを表示します。
D/StatusBar.NetworkController( 1222): refreshNwBoosterIndicator - setNWBoosterIndicators(false)
D/StatusBar.NetworkController( 1222): refreshNwBoosterIndicator - setNWBoosterIndicators(false)
long
すべてのメタデータフィールドを表示し、メッセージを空白行で区切ります。
(私はこれが一番好きですが、私は空白の吸盤です。)
[ 01-27 13:17:07.703 1222: 1222 D/StatusBar.NetworkController ]
refreshNwBoosterIndicator - setNWBoosterIndicators(false)
[ 01-27 13:17:07.703 1222: 1222 D/StatusBar.NetworkController ]
refreshNwBoosterIndicator - setNWBoosterIndicators(false)
process
PIDのみを表示します。
D( 1222) refreshNwBoosterIndicator - setNWBoosterIndicators(false) (StatusBar.NetworkController)
D( 1222) refreshNwBoosterIndicator - setNWBoosterIndicators(false) (StatusBar.NetworkController)
raw
他のメタデータフィールドなしで生のログメッセージを表示します。
refreshNwBoosterIndicator - setNWBoosterIndicators(false)
refreshNwBoosterIndicator - setNWBoosterIndicators(false)
tag
優先度とタグのみを表示します。
D/StatusBar.NetworkController: refreshNwBoosterIndicator - setNWBoosterIndicators(false)
D/StatusBar.NetworkController: refreshNwBoosterIndicator - setNWBoosterIndicators(false)
thread
メッセージを発行するスレッドの優先度、PID、およびTIDを示すレガシー形式。
D( 1222: 1222) refreshNwBoosterIndicator - setNWBoosterIndicators(false)
D( 1222: 1222) refreshNwBoosterIndicator - setNWBoosterIndicators(false)
threadtime
メッセージを発行しているスレッドの日付、呼び出し時刻、優先度、タグ、PID、およびTIDを表示します。
(ドキュメントによると、これはデフォルトですが、私の場合は当てはまりません。)
01-27 13:17:07.703 1222 1222 D StatusBar.NetworkController: refreshNwBoosterIndicator - setNWBoosterIndicators(false)
01-27 13:17:07.703 1222 1222 D StatusBar.NetworkController: refreshNwBoosterIndicator - setNWBoosterIndicators(false)
time
メッセージを発行しているプロセスの日付、呼び出し時刻、優先度、タグ、およびPIDを表示します。
01-27 13:17:07.703 D/StatusBar.NetworkController( 1222): refreshNwBoosterIndicator - setNWBoosterIndicators(false)
01-27 13:17:07.703 D/StatusBar.NetworkController( 1222): refreshNwBoosterIndicator - setNWBoosterIndicators(false)
注:アプリでこれを使用してユーザーのデバイスログをプログラムで収集し、サポートチームなどに送信する場合は、次のように-v
との間のスペースを省略する必要があります。format
commandLine.add( "-vlong" )
なぜそうなのかはわかりませんが、うまくいけば、誰かがそれを理解しようとする時間を節約できます。
開発者サイトのログの読み取りと書き込みから取得:
" time —メッセージを発行しているプロセスの日付、呼び出し時刻、優先度/タグ、およびPIDを表示します。"
エミュレーターではコンピューターの時間になり、デバイスではデバイスの時間になります...
プログラムでデバイスの日付が必要な場合:
SimpleDateFormat s = new SimpleDateFormat("hh:mm:ss");
String format = s.format(new Date());