2011-12-09 11 views
5

De forma predeterminada, la clase de registro en Android escribe registros en la consola (logcat). ¿Hay alguna manera simple de escribir registros, por ej. en algún archivo?Registro de escritura de Android en el archivo

+0

si se toma un enfoque ingenuo de sólo abrir un identificador de archivo y escribir allí - que va a escribir al sistema de archivos en el dispositivo Android, mientras que lo que necesita es probablemente un sistema de archivos en su máquina de desarrollo? – justadreamer

+0

¿Desea exportar mensajes de Logcat a un archivo o simplemente escribir mensajes de registro en archivos? – SERPRO

+0

Quiero exportar mensajes de logcat a un archivo. –

Respuesta

0

redirección de todos los mensajes de error al archivo usando FileInputStream

+4

¿Cómo iba a hacer esto? ¿Puedes proporcionar algunos enlaces o código de muestra? – Gray

1

Si esto es sólo para fines dev, puede invocar Logcat en el dispositivo y redirigir su salida en un archivo. Por ejemplo: adb shell logcat > log.txt.

Como alternativa, puede tratar de redirigir stdout y stderr a un archivo, iirc esto funcionará pero no tengo mi teléfono conmigo para probarlo.

Sin embargo, sería más fácil simplemente hacer su propia clase de registro básico que hace lo mismo que la integrada pero también guarda en un archivo.

0

En Eclipse ddms hay una opción para guardar los registros en el archivo.

3

Clase simple Log (solo para fines de desarrollo/prueba) similar a android.util.Log, pero logs a sdcard. La única modificación al código existente será cambiar el import android.util.Log al import com.example.Log. También agregue el permiso como

<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

amigo útil ..! –

Cuestiones relacionadas