2012-01-27 11 views
1

私はAndroid搭載端末(Android 1.5を使用していますが、それを更新することはできません。まだ実行していません)でLogCatを使用しようとしましたが、実行中のログイベントのみを追跡します。Androidアプリケーションで独自のログファイルを表示することはできますか?

アプリケーションは、実行時に記録されたすべてのイベントを追跡し、ファイルに保存することはできますか? (それ自体でトリガーされていないものさえも)

+0

これは手動で行うことができますが、[this](http://stackoverflow.com/questions/8982263/how-to-write-entire-logcat-in-to-sdcard/8982342#8982342)が役立ちます。 –

答えて

0

this tutorialには、システムログのコピーをStringBuilderオブジェクトにダンプする方法が記載されています。チュートリアルからコピーしたとして

コード:あなたが読んで、ログの許可を含める必要があります

public class LogTest extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     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); 
      } 
      TextView tv = (TextView)findViewById(R.id.textView1); 
      tv.setText(log.toString()); 
     } catch (IOException e) { } 
    } 
} 

注:
<uses-permission android:name="android.permission.READ_LOGS" />

コードの重要な部分はRuntime.getRuntime().exec("logcat -d")部分です。 -dスイッチは、現在のログをトスして終了する部分です。もし私がdocumentationを正しく読んでいるならば、そのスイッチをオフのままにしておくと、理論上、logcatのままにしておいてください。ログの連続する行が表示されるので、stdoutにダンプしてください。

0

書き込み可能なデータベースとIntentServiceを作成します。

コンポーネントが何かを記録したいときはいつでも、インテントを使ってこのサービスを開始してください。

何か不足していますか?

+0

これは私が見たいシステムイベントです。アクティビティを開始するインテントをトリガしてから、アクティビティが表示されるまでの間に何かが起こっています。 – Raceimaztion

関連する問題