44

Androidデバイスのタイムスタンプをhh:mm:ss:SSの形式で取得する必要があります。LogcatofEclipseに表示されている時刻を表示できます。それはコンピューターの時間ですか、それともAndroidデバイスの時間ですか?

4

6 に答える 6

90

logcatのドキュメントから、出力のフォーマット方法を指定するオプションがあることがわかります(-v)。

タイムスタンプを取得するには、次のコマンドを使用できます

logcat -v time

これにより、各メッセージの前にタイムスタンプが付けられます。

于 2013-02-27T14:16:29.300 に答える
20

デバイスからログを取得するためにターミナルで使用adb logcat -v threadtime します。これには日付と時刻が含まれます。

これらのログをテキストファイルにリダイレクトする場合は、ターミナルでコマンドを使用します。

 adb logcat -v threadtime > folder_path_in_the_computer/filename.txt
于 2015-02-03T16:50:55.713 に答える
9

Androidデバイスでアプリを実行している場合は、デバイスの時刻が出力されます。エミュレーターの場合は、コンピューターの時刻が表示されます。

ログの時刻をデバイスの時刻およびコンピューターの時刻と一致させるために、答えが見つかります。

于 2013-02-27T14:15:13.387 に答える
9

を使用するlongthreadtimeまたはtimelogcat -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" )

なぜそうなのかはわかりませんが、うまくいけば、誰かがそれを理解しようとする時間を節約できます。

于 2018-01-27T19:16:56.853 に答える
1

開発者サイトのログの読み取りと書き込みから取得:

" time —メッセージを発行しているプロセスの日付、呼び出し時刻、優先度/タグ、およびPIDを表示します。"

エミュレーターではコンピューターの時間になり、デバイスではデバイスの時間になります...

于 2013-02-27T14:18:24.360 に答える
0

プログラムでデバイスの日付が必要な場合:

 SimpleDateFormat s = new SimpleDateFormat("hh:mm:ss");
    String format = s.format(new Date());
于 2013-02-27T14:12:00.760 に答える