`
44289533
  • 浏览: 65093 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

简单的Android日志文件记录类

 
阅读更多
简单的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 "";
    }
}
分享到:
评论

相关推荐

    android日志分析&崩溃拦截

    Android日志打印类LogUtils.rar android端_手机端日志查看工具.rar app打印日志保存到手机上传服务器.rar javaapk.com文件列表生成.bat 动态错误提示效果Android.rar 实现抓取系统所有app的崩溃错误的log信息...

    Android代码-安卓常用工具类

    MAUtils 安卓常用工具类 查询联系人 插入联系人 查询短信 插入短信

    Android 全局捕获异常消息示例.rar

    创建格式化日期的日志文件,里面涉及到的一些日志获取和保存类,可学习参考,可用于其它的Android开发异常消息处理中。  包括有以下几个操作类:  日期工具类:实现了日期格式转化、获取各种日期的常用操作;  ...

    安卓开发中的日志写入功能,封装了一个日志方法和调用方法 方便初学者2分钟搞定日志记录

    如果不想用一个日志文件,也支持每天建立一个日志文件,主要用作跟硬件相互通讯的程序中,当然其它类型的安卓程序一样可以使用,这是个一个kotlin版本的工具,java语言和kotlin都通用。希望能减少开发耗时,轮子哥的...

    实用程序记录器库,用于将日志存储到数据库中并将其推送到远程服务器进行调试-Android开发

    HyperLog Android概述日志格式下载初始化使用情况获取文件中的日志使用RequestBin示例测试端点将文件推送到远程服务器示例测试端点Django HyperLog Android概述日志格式下载初始化使用情况获取文件中的日志将日志...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    集成目前Android主流优秀第三方组件

    LOG相关工具类(ToolLog.java) 功能待续--&gt;切入记录异常日志,并存储文件或上传至服务器 已封装/收集自定义控件: 兼容低版本的SwitchButton 追加自定义属性Value的CheckBox/RadioButton/RadioGroup/SingleSpinner...

    标准Android Log的Clog记录器实现-Android开发

    它基于Android Log类接口,但通过具有多个配置文件的自定义记录器和功能强大的String Clog零配置Kotlin多平台日志记录实用程序进行了改进,支持的平台/功能平台记录目标ANSI颜色标记推断SLF4J集成JVM控制台/ stdout:...

    Android集成主流优秀第三方组件框架

    LOG相关工具类(ToolLog.java) 功能待续--&gt;切入记录异常日志,并存储文件或上传至服务 器 已封装/收集自定义控件: 兼容低版本的SwitchButton 追加自定义属性Value的CheckBox/RadioButton/RadioGroup/...

    Android程序技术:代码混淆、打包、加固.pptx

    -verbose # 混淆时是否记录日志 #混淆时所采用的算法 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keep public class * extends android.app.Activity # 保持哪些类不被混淆 -keep ...

    Android例子源码集成安卓主流优秀第三方组件框架.zip

    切入记录异常日志,并存储文件或上传至服务器 已封装/收集自定义控件: 兼容低版本的SwitchButton 追加自定义属性Value的CheckBox/RadioButton/RadioGroup/SingleSpinner 圆角提示信息TipsView 圆角图片...

    来电信息Android应用

    APK 文件通过 Travis CI 自动生成并上传,用户可在每个 GitHub 版本发行 中找到编译日志来校验文件 sha1 及 md5。 3. 请避免限制主应用及插件请求的权限。如出现来电时不显示悬浮窗,请先检查权限设置、权限管理...

    android-lint-rules:其他 Android lint 规则

    在开头的某处)来打开调试日志记录。 打开此功能(当然还有重建)后,测试 lint 规则的项目必须在非守护进程模式下运行,否则不会显示日志: gradle --no-daemon lint包含的探测器SocketUsageDetectorAst:来自“在...

    Android之LogDog

    在模拟器和自己的机器上运行得好好的程序,不知道为什么在别人的机器上就会抛...为此我写了个LogDog类,可以和Log一样记录所有的日志,直到例外发生的时候。每个例外和日志一起记录在一个文件里,所有的信息一目了然。

    android-connection-handler:Android库,用于处理与RESTful服务的通信

    使用API​​记录整个通信的简单机制。 所有请求和响应的参数都包括在内:标题,时间戳,状态码,cookie,主体描述等。 用于显示日志的预定义视图。 库使用James Smith( )编写的PersistentCookieStore和...

    Shine:应用程序了解android平台的详细信息

    日志记录-用于调试和错误日志记录的详细信息 Intent和putExtra将消息发送到配方类,接收Intent并提取消息 通过扩展PrefernceActivity以及如何实现onPreferenceChangeListener来进行设置页面 通过首选项xml文件并使用...

    timenote时光笔记(记事本软件) v2.37.zip

    TimeNote为珍惜时间,珍惜往事的人潜心开发的软件,一款具有独立文件与事件预测的跨平台日程管理软件(支持Android、IPhone与各PC平台)。本软件采用独家原创数据解码格式,支持云端异步操作,并能对普遍使用的ICS文件...

    基于QT 校园图书管出入库系统.zip

    Qt支持 Windows、Linux/Unix、Mac OS X、Android、BlackBerry、QNX等多种平台,并为这些不同的平台提供了统一的开发环境。 面向对象 C++是完全面向对象的,这一点和Objective-c等在开发很相似。而Qt又是基于C++一...

    集成安卓主流优秀第三方组件框架.zip

    切入记录异常日志,并存储文件或上传至服务器 已封装/收集自定义控件: 兼容低版本的SwitchButton 追加自定义属性Value的CheckBox/RadioButton/RadioGroup/SingleSpinner 圆角提示信息TipsView 圆角图片...

Global site tag (gtag.js) - Google Analytics