简单的Android日志文件记录类
16lz
2021-12-04
简单的Android日志文件记录类
import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.PrintWriter;import java.io.StringWriter;import java.text.SimpleDateFormat;import java.util.Date;public class MusicLog{ private static MusicLog mMusicLog; /**日志保存路径*/ private static final String LOG_SAVE_PATH = "sdcard/StackTraceLog/"; /**日志开关*/ private static final boolean LOG_SWITCH = false; public static MusicLog MusicLogInstance(){ if(mMusicLog == null){ mMusicLog = new MusicLog(); } return mMusicLog; } /**插入日志*/ public void addLog(String logStr){ if(LOG_SWITCH){ File file = checkLogFileIsExist(); if(file == null) return; FileOutputStream fos = null; try { fos = new FileOutputStream(file, true); fos.write((new Date().toLocaleString() + " " + logStr).getBytes("gbk")); fos.write("\r\n".getBytes("gbk")); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally{ try { if(fos != null){ fos.close(); fos = null; } } catch (IOException e) { e.printStackTrace(); } fos = null; file = null; } } } /**检查日志文件是否存在*/ private File checkLogFileIsExist(){ if(!MemorySpaceManager.isSDExist()){ return null; } File file = new File(LOG_SAVE_PATH); if(!file.exists()){ file.mkdirs(); } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String dateStr = sdf.format(new Date()); file = new File(LOG_SAVE_PATH + dateStr + ".txt"); if(!isLogExist(file)){ try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } sdf = null; return file; } /** * 检查当天日志文件是否存在 * @param file * @return */ private boolean isLogExist(File file){ File tempFile = new File(LOG_SAVE_PATH); File[] files = tempFile.listFiles(); for(int i = 0; i < files.length; i++){ if(files[0].getName().trim().equalsIgnoreCase(file.getName())){ return true; } } return false; } /** * 打印异常堆栈信息 * @param e * @return */ public static String getExceptionStackTrace(Throwable e){ if(e != null){ StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); return sw.toString(); } return ""; }}
更多相关文章
- ADT20新建项目Android(安卓)Support library not installed问题
- Android上传文件,客户端+服务器源码
- Android编译过程详解
- android中的按钮以图片的方式显示_基础篇
- android 反编译入门
- Android(安卓)文件存储的简单实现
- 从android 里面读取配置文件
- Android写Logcat文件保存到SD卡
- Android(安卓)Studio 使用NDK编译时常见的问题