2011-07-01 31 views
6

Androidの特定のファイルにlog catのすべての内容を保存します。 Eclipse IDEを使用してAndroidアプリケーションを開発しました。AndroidのLogCatのデータを保存

どうすれば実現できますか?

ありがとうございました。

答えて

10

ここでは、Logcatの内容をprogrmatically取得する方法を示します。

Process process = Runtime.getRuntime().exec("logcat -d"); 

BufferedReader bufferedReader = new BufferedReader(
    new InputStreamReader(process.getInputStream())); 

StringBuilder log=new StringBuilder(); 
String line = ""; 
while ((line = bufferedReader.readLine()) != null) { 
    log.append(line); 
} 

詳細については、thisのリンクを確認してください。

4
I want to save all the contents of log cat into specific file in Android. 

LogCatファイルは、デバイスに循環メモリバッファとして保存されます。

ホストシステムで "adb logcat > myfile"を実行すると、コンテンツをファイルに取り込むことができます。

これを参照してください:

が保存したいと、単に押しLogCatの行を選択します。ブランデルの道@

  1. :LogCatを抽出するために https://sites.google.com/site/androidhowto/how-to-1/save-logcat-to-a-text-file

    他の方法Ctrl + C(コピー用)を選択し、Ctrl + V(貼り付け用)を任意のテキストファイルで使用します。 Niekの道@

  2. :LogCatタブで

    、保存したい行を選択します。そして、右上部に、テキストとしてエクスポート選択」、「と呼ばれる表示メニュー」を下向きの小さな三角形をクリックして、選択..」 それはあなたのLogCatファイルを保存する場所を聞いてきます。

7

でlogcatタブですべての行を選択し、右上にある「View Menu」という小さな三角をクリックし、「Selection as text ..」を選択します。

0

@Kartik show方法。

クイックネスのために、コピーして貼り付けることができます。 そして、あなたは(複数行のための選択)

ホールドシフトで開始したい行をクリックしlogcatビューが開いているのEclipse> DDMS> logcat

を確認

あなたがで終了したい行をクリックしてください

と単純にCtrl + C(コピー)

Ctrl + V(あなたが欲しいwhereeverペースト)

0

私の方法は、デバイスがジャスト外部メモリ内のファイルを作成し、コンストラクタでLogWrapper と のクローンを作成ADB

に接続されていないときのテスト状況にログイン取得することができます。 DIRECTORY_PICTURESはすべてのデバイスに存在するため、選択しました。 コンストラクタ public LogWrapperExt(){ sdf = new SimpleDateFormat( "\ n hh:mm:ss.SSS"); 文字列パス。 isValid = true; boolean isPresent; try { topDirPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); (topDirPath!= null) パス= topDirPath.getCanonicalPath();

} catch (java.io.IOException e) { 
     isValid = false; 
    } catch (java.lang.NoSuchFieldError e) { 
     isValid = false; 
    } 
    if(isValid){ 
     logsFolder = new File(topDirPath + File.separator + "MyLogs");// put your name 
     if (!logsFolder.exists()) { 
      isPresent = logsFolder.mkdir(); 
     } 
     try { 
      String formattedDate = new Date().toString() ; 
      formattedDate = formattedDate.replaceAll(" ", "_"); 
      String fileName = "test_"+ formattedDate + ".txt"; 
      logFile = new File(logsFolder.getAbsolutePath(),fileName); 
      outputStreamLogFile = new FileOutputStream(logFile); 
     } catch (java.io.FileNotFoundException e) { 

     } 
    } 
} 

次に、printlnも公開します。いけないあなた

にLogWrapper名を置き換えることを忘れ真が、すべての状況でのデータあなた

-

Log.println(priority, tag, useMsg); 

    String myp = dateStr + " " + level_name[priority] + " " + tag + " " + useMsg; 
    try{ 
     outputStreamLogFile.write(myp.getBytes()); 
    } catch (java.io.IOException e) { 

    } 

いくつかのオーバーヘッド

関連する問題