2011-12-09 18 views
5

デフォルトでは、アンドロイドのログクラスはコンソール(logcat)にログを書き込みます。ログを簡単に書く方法はありますか。いくつかのファイルですか?Androidログファイルへの書き込み

+0

として権限を追加あなたのdevマシンのファイルシステム? – justadreamer

+0

logcatメッセージをファイルにエクスポートするか、ログメッセージをファイルに書き込むだけですか? – SERPRO

+0

私はlogcatメッセージをファイルにエクスポートします。 –

答えて

0

これはdevの目的のためだけであればFileInputStreamの

+4

どうすればこのことができますか?いくつかのリンクやサンプルコードを提供できますか? – Gray

1

を使用してファイルにすべてのエラーメッセージをリダイレクトすることは、あなたは、デバイス上でlogcatを起動し、ファイルにその出力をリダイレクトすることができます。例:adb shell logcat > log.txt

stdoutstderrをファイルにリダイレクトしてみてください.iircこれは動作しますが、テストするには自分の電話がありません。

しかし、組み込みのものと同じことをするだけでなく、ファイルに保存する独自の基本ログクラスを作る方が簡単です。

0

Eclipse ddmsには、ログをファイルに保存するオプションがあります。

3

android.util.Logと同様の単純なLogクラス(開発/テスト目的のみ)ですが、sdcardに記録します。既存のコードを変更するだけで、import android.util.Logimport com.example.Logに変更することができます。あなたは、あなたのAndroidデバイス上のファイルシステムへの書き込みをされ、何が必要なのでしょういる間に - あなただけのファイルハンドルを開き、そこに書き込むことの単純なアプローチを取る場合も

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

package com.example.logger; 

import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

import android.os.Environment; 

public class Log { 
    private static final String NEW_LINE = System.getProperty("line.separator") ; 
    public static boolean mLogcatAppender = true; 
    final static File mLogFile; 

    static { 
     mLogFile = new File(Environment.getExternalStorageDirectory(), "logs.log"); 
     if (!mLogFile.exists()) { 
      try { 
       mLogFile.createNewFile(); 
      } 
      catch (final IOException e) { 
       e.printStackTrace(); 
      } 
     } 
     logDeviceInfo(); 
    } 

    public static void i(String TAG, String message){ 
     appendLog(TAG + " : " + message); 
     if (mLogcatAppender) { 
      android.util.Log.i(TAG, message); 
     } 
    } 

    public static void d(String TAG, String message){ 
     appendLog(TAG + " : " + message); 
     if (mLogcatAppender) { 
      android.util.Log.d(TAG, message); 
     } 
    } 

    public static void e(String TAG, String message){ 
     appendLog(TAG + " : " + message); 
     if (mLogcatAppender) { 
      android.util.Log.e(TAG, message); 
     } 
    } 

    public static void v(String TAG, String message){ 
     appendLog(TAG + " : " + message); 
     if (mLogcatAppender) { 
      android.util.Log.v(TAG, message); 
     } 
    } 

    public static void w(String TAG, String message) { 
     appendLog(TAG + " : " + message); 
     if (mLogcatAppender) { 
      android.util.Log.w(TAG, message); 
     } 
    } 

    private static synchronized void appendLog(String text) { 
     final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); 

     try { 
      final FileWriter fileOut = new FileWriter(mLogFile, true); 
      fileOut.append(sdf.format(new Date()) + " : " + text + NEW_LINE); 
      fileOut.close(); 
     } 
     catch (final IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    private static void logDeviceInfo() { 
     appendLog("Model : " + android.os.Build.MODEL); 
     appendLog("Brand : " + android.os.Build.BRAND); 
     appendLog("Product : " + android.os.Build.PRODUCT); 
     appendLog("Device : " + android.os.Build.DEVICE); 
     appendLog("Codename : " + android.os.Build.VERSION.CODENAME); 
     appendLog("Release : " + android.os.Build.VERSION.RELEASE); 
    } 

} 
+0

お役立ちの友達..! –

関連する問題