2013-01-03 3 views
2

not connect 이클립스에서 USB를 사용하여 내 앱 로그를 저장할 수 있습니까?Android - Eclipse에 연결하지 않을 때의 로그

이 도구를 사용하지 않고 프로그래밍 방식으로이 작업을 수행하려고합니다.

앱의 로그인 파일 또는 SDCARD에 저장하려고합니다.

그렇다면 어떻게 될까요?

미리 감사드립니다.

답변

2

검사는 당신을 도울 수 있습니다

주요 활동

package com.get_Logs; 

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.OutputStreamWriter; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.TextView; 

public class Get_LogsActivity extends Activity { 
    private TextView textv; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     textv = (TextView)findViewById(R.id.textView1); 

     getallLogs(); 
    } 

    private void getallLogs() { 
     // TODO Auto-generated method stub 
     try { 
      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+"\n"); 
      } 

      File myFile = new File("/sdcard/mysdfile.doc"); 
      if (!myFile.exists()) { 
       myFile.createNewFile(); 
      } 

      Log.e("log---->", ""+log.toString()); 

      textv.setText(log.toString()); 

      FileOutputStream fOut = new FileOutputStream(myFile); 
      OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); 
      myOutWriter.append(log.toString()); 
      myOutWriter.close(); 
      fOut.close(); 



     } catch (IOException e) { 
      Log.d("D: error generate log -->", "" + e.getMessage().toString()); 
     } 
    } 
} 

메인 레이아웃 파일

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <ScrollView android:id="@+id/scrollView1" 
     android:layout_height="match_parent" android:layout_width="match_parent"> 
     <LinearLayout android:id="@+id/linearLayout1" 
      android:layout_width="match_parent" android:layout_height="match_parent"> 
      <TextView android:id="@+id/textView1" android:layout_height="match_parent" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="TextView" android:layout_width="match_parent"></TextView> 
     </LinearLayout> 
    </ScrollView> 
</LinearLayout> 

매니페스트를 파일 :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.get_Logs" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="13"/> 
    <uses-permission android:name="android.permission.READ_LOGS"></uses-permission> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 

    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".Get_LogsActivity" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

    </application> 
</manifest> 
1

예. 가능합니다. 당신은 당신이 ("여기에 정보를", "YOURTAG") Log.d를 추가해야합니다이 명령

logcat -d -v threadtime -f /mnt/sdcard/LogCatApp.txt -s YOURTAG 

참고로 로그 고양이를 저장할 수 있습니다; 무언가를보고하기 위해, 또한이

logcat -d -v threadtime -f /mnt/sdcard/LogCatApp.txt 
관련 문제