Androidデバイスのタイムスタンプをhh:mm:ss:SSの形式で取得する必要があります。EclipseのLogcatに表示される時間を表示できます。コンピューターの時間ですか? Android=デバイスの時間?
アプリをAndroidデバイスで実行している場合、デバイスの時間を出力します。エミュレーターで実行している場合、コンピューターの時間を表示します。
ログの時間をデバイスの時間およびコンピューターの時間と一致させるだけで、答えが見つかります。
logcatのドキュメント から、出力のフォーマット方法を指定するオプションがあることがわかります( -v )。
タイムスタンプを取得するには、次のコマンドを使用できます
logcat -v time
これにより、各メッセージの前にタイムスタンプが付きます。
つかいます adb logcat -v threadtime
端末からログを取得するために、日付と時刻が含まれます。
これらのログをテキストファイルにリダイレクトする場合は、ターミナルでコマンドを使用します。
adb logcat -v threadtime > folder_path_in_the_computer/filename.txt
logcat -v <format>
でlong
、threadtime
、またはtime
形式を使用しますlogcat
には多くのフォーマットオプションがあり、コマンドラインの-v
フラグに渡すことができます。ドキュメントですべての形式を表示できます here 。
以下は、各オプションがどのように見えるかのサンプルです。これにより、ニーズに合ったオプションを決定できます。
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());