1.Log2File工具类的作用
这个工具类是用于Android程序将Log记录到文件中的类,类很简单,复制粘贴过去就可以直接用。
应用场景:
- 无法连接电脑进行调试(usb线被usbotg占用)
- Log不容易被抓取
- Bug出现很随机,不是必出现
- 其他自己脑补
2.Log2File工具类源码
import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Date; import android.content.Context; import android.os.Environment; public class Log2File { private static boolean logInit; private static BufferedWriter writer; private Log2File() { } /** * 初始化Log,创建log文件 * @param ctx * @param fileName * @return */ public static boolean init(Context ctx, String fileName) { if(!logInit) { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { File sdDir = Environment.getExternalStorageDirectory(); File logDir = new File(sdDir.getAbsolutePath() + "/log2file/" + ctx.getPackageName() + "/"); try { if(!logDir.exists()) { logDir.mkdirs(); } File logFile = new File(logDir, fileName); logFile.createNewFile(); writer = new BufferedWriter(new FileWriter(logFile, true)); logInit = true; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return logInit; } /** * 写一条log * @param msg */ public static void w(String msg) { if(logInit) { try { Date date = new Date(); writer.write("[" + date.toLocaleString() + "] " + msg); writer.newLine(); writer.flush(); } catch (IOException e) { // TODO Auto-generated catch block } } } /** * 关闭log */ public static void close() { if(logInit) { try { writer.close(); writer = null; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } logInit = false; } } }
3.Log2File工具类的使用
这个工具类的使用比较简单,
1.首先调用init进行初始化
public static boolean init(Context ctx, String fileName)
2.调用w写入log
public static void w(String msg)3.使用完毕后,记得要关闭Log
public static void close()