2015-11-17 1 views
0

Я хочу получить журнал на своем устройстве в файле csv/txt. Проблема в том, что я просто хочу, чтобы конкретный журнал был из одного Activity.Following - это код, который я хочу получить в Log.Как получить конкретный Вход в файл csv/txt на Android-устройство

final Beacon maxBeacon = Collections.max(beacons, new Comparator<Beacon>() { 
      public int compare(Beacon b1, Beacon b2) { 
       return Integer.compare(b1.getRssi(), b2.getRssi()); 

      } 


     }); 
     WifiManager manager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); 
     WifiInfo info = manager.getConnectionInfo(); 
     String address = info.getMacAddress(); 
     String Bmacstring = String.valueOf(maxBeacon.getMacAddress()); 
     String newString = Bmacstring.replace("[", ""); 
     newString = newString.replace("[", ""); 
     newString = newString.replace("]", ""); 
     String query = "?deviceMacAddress=" + info.getMacAddress() + "&beaconMacAddress=" + newString; 
     Log.i("Rss", String.valueOf(maxBeacon)); 
     new HttpAsyncTask().execute("http://192.168.137.121:1010/api/History/CreatHistory" + query); 

Я хочу Логарифм Log.i ("Rss", String.valueOf (maxBeacon)); в коде выше в Android-устройстве.

Любая помощь будет оценена по достоинству. Спасибо

+0

Почему бы вам не написать код, чтобы сохранить текст в файл. –

+0

Боюсь, я не знаю. Не могли бы вы рассказать, как это сделать! –

ответ

0

Иногда, прежде чем я создал вспомогательный класс для ведения журнала, для хранения журнала в текстовом файле.

import android.os.Environment; 
import android.util.Log; 

import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.Locale; 

/** 
* TODO: Add a class header comment! 
* 
* @author Dhaval Patel 
* @version 1.0, May 24, 2015 
* @since 1.0 
*/ 
public final class Logger { 

    private static final String LOG_PREFIX = "appname_"; 
    private static final int LOG_PREFIX_LENGTH = LOG_PREFIX.length(); 
    private static final int MAX_LOG_TAG_LENGTH = 23; 

    private static final Boolean ENABLE_CONSOLE_LOG = true; //Flag to enable or disable console log 
    private static final Boolean ENABLE_FILE_LOG = true; //Flag to enable or disable file log 
    private static final LogLevel GLOBAL_LOG_LEVEL = LogLevel.VERBOSE; //Flag indicate log level 
    private static final String LOG_DIRECTORY = Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator+"log"+ File.separator; 

    public static String makeLogTag(String str) { 
     if (str.length() > MAX_LOG_TAG_LENGTH - LOG_PREFIX_LENGTH) { 
      return LOG_PREFIX + str.substring(0, MAX_LOG_TAG_LENGTH - LOG_PREFIX_LENGTH - 1); 
     } 
     return LOG_PREFIX + str; 
    } 

    private enum LogLevel{ 
     VERBOSE(Log.VERBOSE), 
     DEBUG(Log.DEBUG), 
     INFO(Log.INFO), 
     WARNING(Log.WARN), 
     ERROR(Log.ERROR), 
     ASSERT(Log.ASSERT); 

     private final int logLevel; 
     LogLevel(int logLevel) { 
      this.logLevel = logLevel; 
     } 

     public int getLogLevel() { 
      return logLevel; 
     } 
    } 


    /** 
    * 
    * @param tag Used to identify the source of a log message. It usually identifies 
    *   the class or activity where the log call occurs. 
    * @param msg The message you would like logged. 
    * 
    */ 
    public static void v(String tag, String msg) { 
     write(LogLevel.VERBOSE, tag, msg); 
    } 

    /** 
    * 
    * @param tag Used to identify the source of a log message. It usually identifies 
    *   the class or activity where the log call occurs. 
    * @param msg The message you would like logged. 
    * @param tr An exception to log 
    * 
    */ 
    public static void v(String tag, String msg, Throwable tr) { 
     write(LogLevel.VERBOSE, tag, msg, tr); 
    } 

    /** 
    * 
    * @param tag Used to identify the source of a log message. It usually identifies 
    *   the class or activity where the log call occurs. 
    * @param msg The message you would like logged. 
    * 
    */ 
    public static void d(String tag, String msg) { 
     write(LogLevel.DEBUG, tag, msg); 
    } 

    /** 
    * 
    * @param tag Used to identify the source of a log message. It usually identifies 
    *   the class or activity where the log call occurs. 
    * @param msg The message you would like logged. 
    * @param tr An exception to log 
    * 
    */ 
    public static void d(String tag, String msg, Throwable tr) { 
     write(LogLevel.DEBUG, tag, msg, tr); 
    } 

    /** 
    * 
    * @param tag Used to identify the source of a log message. It usually identifies 
    *   the class or activity where the log call occurs. 
    * @param msg The message you would like logged. 
    * 
    */ 
    public static void i(String tag, String msg) { 
     write(LogLevel.INFO, tag, msg); 
    } 

    /** 
    * 
    * @param tag Used to identify the source of a log message. It usually identifies 
    *   the class or activity where the log call occurs. 
    * @param msg The message you would like logged. 
    * @param tr An exception to log 
    * 
    */ 
    public static void i(String tag, String msg, Throwable tr) { 
     write(LogLevel.INFO, tag, msg, tr); 
    } 

    /** 
    * 
    * @param tag Used to identify the source of a log message. It usually identifies 
    *   the class or activity where the log call occurs. 
    * @param msg The message you would like logged. 
    * 
    */ 
    public static void w(String tag, String msg) { 
     write(LogLevel.WARNING, tag, msg); 
    } 

    /** 
    * 
    * @param tag Used to identify the source of a log message. It usually identifies 
    *   the class or activity where the log call occurs. 
    * @param msg The message you would like logged. 
    * @param tr An exception to log 
    * 
    */ 
    public static void w(String tag, String msg, Throwable tr) { 
     write(LogLevel.WARNING, tag, msg, tr); 
    } 

    /** 
    * 
    * @param tag Used to identify the source of a log message. It usually identifies 
    *   the class or activity where the log call occurs. 
    * @param msg The message you would like logged. 
    * 
    */ 
    public static void e(String tag, String msg) { 
     write(LogLevel.ERROR, tag, msg); 
    } 

    /** 
    * 
    * @param tag Used to identify the source of a log message. It usually identifies 
    *   the class or activity where the log call occurs. 
    * @param msg The message you would like logged. 
    * @param tr An exception to log 
    * 
    */ 
    public static void e(String tag, String msg, Throwable tr) { 
     write(LogLevel.ERROR, tag, msg, tr); 
    } 

    private static boolean isLogEnable(LogLevel logLevel){ 
     return GLOBAL_LOG_LEVEL.getLogLevel() <= logLevel.getLogLevel(); 
    } 

    private static void write(LogLevel logLevel, String tag, String log) { 
     if (isLogEnable(logLevel) && ENABLE_FILE_LOG){ 
      StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[4]; 
      String logPoint = stackTraceElement.getClassName() + "." + stackTraceElement.getMethodName() + ":" + stackTraceElement.getLineNumber(); 
      String msg = "["+getCurrentDateTime()+"] "+ logLevel.name() +" "+ logPoint +" "+tag+"//:"+log; 
      write(msg); 
     } 

     if (isLogEnable(logLevel) && ENABLE_CONSOLE_LOG){ 
      Log.println(logLevel.getLogLevel(), makeLogTag(tag), log); 
     } 
    } 

    private static void write(LogLevel logLevel, String tag, String log, Throwable tr){ 
     if (isLogEnable(logLevel) && ENABLE_FILE_LOG){ 
      StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[4]; 
      String logPoint = stackTraceElement.getClassName() + "::" + stackTraceElement.getMethodName() + ":" + stackTraceElement.getLineNumber(); 
      String msg = "["+getCurrentDateTime()+"] "+ logLevel.name() +" "+ logPoint+" "+tag+"//:"+log+"\n"+Log.getStackTraceString(tr); 
      write(msg); 
     } 

     if (isLogEnable(logLevel) && ENABLE_CONSOLE_LOG){ 
      Log.println(logLevel.getLogLevel(), makeLogTag(tag), log + "\n" + Log.getStackTraceString(tr)); 
     } 
    } 

    private static void write(String text){ 
     BufferedWriter out = null; 
     String filePath = LOG_DIRECTORY +"AppLog.txt"; 
     try { 

      SimpleDateFormat df = new SimpleDateFormat("dd_MMM_yyyy", Locale.ENGLISH); 
      String formattedDate = df.format(System.currentTimeMillis()); 

      if(!new File(LOG_DIRECTORY).exists()) { 
       new File(LOG_DIRECTORY).mkdirs(); 
      } 

      if(!new File(filePath).exists()) 
       new File(filePath).createNewFile(); 

      if(new File(filePath).exists()){ 
       FileWriter fStream = new FileWriter(filePath, true); 
       out = new BufferedWriter(fStream); 
       out.write(text); 
       out.flush(); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       if(out!=null) 
        out.close(); 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

    private static String getCurrentDateTime(){ 
     return new SimpleDateFormat("dd MMM yyyy HH:mm:ss:SSS" , Locale.getDefault()).format(Calendar.getInstance().getTime()); 
    } 

} 

Использование:

Logger.i("Rss", String.valueOf(maxBeacon)); 
+0

@Harsh Mittal Вы можете изменить способ записи в соответствии с вашими потребностями. –

+0

Я сделал, как упоминалось, но я не получаю никаких файлов !! Просто войдите в logcat, как и раньше. Где я ошибаюсь? –

+0

Вы указали ** разрешение ** в манифесте? –