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 ""; } }
简单的Android日志文件记录类
简单的Android日志文件记录类
猜你喜欢
转载自44289533.iteye.com/blog/1709318
今日推荐
周排行