2012-04-11 12 views
2

Ich entwickle eine Anwendung, die Standortdienste verwendet. Ich muss die Anwendung debuggen, die Log.d() verwendet, aber das Gerät muss vollständig mit dem Computer verbunden sein. Und das ist unmöglich für mich. Ich werde die App etwa zwei Stunden lang auf Reisen testen. Ich kann es zu diesem Zeitpunkt nicht mit dem PC verbinden.Offline-Debuggen von Android-Anwendungen

Gibt es eine Möglichkeit, das Protokoll Telefon zu speichern und später abrufen und können die LOG-Daten sehen.

Antwort

3

Ihre eigene Logger Klasse einführen, einen Wrapper für android.util.Log-Klasse, die beide Ausgabe umleitet, in Datei und Konsole:

public class Logger { 

    public static PrintWriter printWriter = null; 

    private static void init() { 
     ... 
     // Check if external media is writable 
     ... 

     if (printWriter == null) { 
      try { 
       File dir = new File(Environment.getExternalStorageDirectory() + LOG_DIR); 
       dir.mkdirs(); 
       printWriter = new PrintWriter(new FileWriter(new File(dir, LOG_FILE), true)); 
      } 
      catch (IOException e) { 
       Log.e(Logger.class.getName(), "initExternal() -> IOException", e); 
      } 
     } 
    } 

    private static synchronized int log(int priority, String tag, String msg) { 
     int res = Log.println(priority, tag, msg); 

     init(); // May be called just once, depending on your requirements 

     printWriter.print(tag + " "); 
     printWriter.print(msg + "\r\n"); 
     printWriter.flush(); 
     return res; 
    } 


    // Duplicates of standard android.util.Log methods: 
    public static int v(String tag, String msg) { 
     return log(Log.VERBOSE, tag, msg); 
    } 
    public static int v(String tag, String msg, Throwable tr) { 
     return log(Log.VERBOSE, tag, msg + '\n' + Log.getStackTraceString(tr)); 
    } 
    public static int d(String tag, String msg) { 
     return log(Log.DEBUG, tag, msg); 
    } 
    public static int d(String tag, String msg, Throwable tr) { 
     return log(Log.DEBUG, tag, msg + '\n' + Log.getStackTraceString(tr)); 
    } 

    ... 

} 
1

Es gibt Apps, die die letzten paar hundert Zeilen des Protokolls erfassen und per E-Mail an die E-Mail-Adresse senden, an die Sie senden möchten. Ich habe log Sammler https://play.google.com/store/apps/details?id=com.xtralogic.android.logcollector&feature=search_result#?t=W251bGwsMSwyLDEsImNvbS54dHJhbG9naWMuYW5kcm9pZC5sb2djb2xsZWN0b3IiXQ .. verwendet und kann es empfehlen, wird die Arbeit, die Sie für Sie tun müssen: D

+0

das scheint nur letzten 200 Protokoll zu sammeln .... aLogcat ist viel besser –