1.  
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.io.PrintWriter;
  7. import java.io.StringWriter;
  8. import java.util.Date;
  9.  
  10. import org.apache.commons.lang3.time.DateFormatUtils;
  11.  
  12. import android.os.Environment;
  13. import android.util.Log;
  14.  
  15. public class Logger {
  16. private static int LOGLEVEL = 6;
  17. private static int VERBISE = 1;
  18. private static int DEBUG = 2;
  19. private static int INFO = 3;
  20. private static int WARN = 4;
  21. private static int ERROR = 5;
  22.  
  23. // 根据需要将Log存放到SD卡中
  24. private static String path;
  25. private static File file;
  26. private static FileOutputStream outputStream;
  27. private static String pattern = "yyyy-MM-dd HH:mm:ss";
  28.  
  29. static {
  30. if (Utils.checkSD()) {
  31. File externalStorageDirectory = Environment
  32. .getExternalStorageDirectory();
  33. path = externalStorageDirectory.getAbsolutePath() + "/Log/";
  34. File directory = new File(path);
  35. if (!directory.exists()) {
  36. directory.mkdirs();
  37. }
  38. file = new File(new File(path), "Log.txt");
  39. try {
  40. outputStream = new FileOutputStream(file, true);
  41. } catch (FileNotFoundException e) {
  42. e.printStackTrace();
  43. }
  44. }
  45. }
  46.  
  47. public static void v(String tag, String msg) {
  48. if (LOGLEVEL > VERBISE) {
  49. Log.v(tag, msg);
  50. }
  51. }
  52.  
  53. public static void d(String tag, String msg) {
  54. if (LOGLEVEL > DEBUG) {
  55. Log.d(tag, msg);
  56. }
  57. }
  58.  
  59. public static void i(String tag, String msg) {
  60. if (LOGLEVEL > INFO) {
  61. Log.i(tag, msg);
  62. }
  63. }
  64.  
  65. public static void w(String tag, String msg) {
  66. if (LOGLEVEL > WARN) {
  67. Log.w(tag, msg);
  68. }
  69. }
  70.  
  71. public static void e(String tag, String msg) {
  72. if (LOGLEVEL > ERROR) {
  73. Log.e(tag, msg);
  74. }
  75. }
  76.  
  77. /**
  78. * 将错误信息保存到SD卡中去!可选的操作!
  79. *
  80. * @param msg
  81. * 传递的String类型
  82. */
  83. public static void save2Sd(String msg) {
  84. Date date = new Date();
  85. String time = DateFormatUtils.format(date, pattern);
  86. save(time, msg);
  87. }
  88.  
  89. /**
  90. * 将错误信息保存到SD卡中去!可选的操作!
  91. *
  92. * @param e
  93. * 传递的是Exception类型
  94. */
  95. public static void save2Sd(Exception e) {
  96. Date date = new Date();
  97. String time = DateFormatUtils.format(date, pattern);
  98. StringWriter writer = new StringWriter();
  99. PrintWriter pw = new PrintWriter(writer);
  100. e.printStackTrace(pw);
  101. String msg = writer.toString();
  102. save(time, msg);
  103. }
  104.  
  105. /**
  106. * 保存的核心方法
  107. * @param time 保存的时间
  108. * @param msg 保存的信息
  109. */
  110. private static void save(String time, String msg) {
  111. if (Utils.checkSD()) {
  112. if (outputStream != null) {
  113. try {
  114. outputStream.write(time.getBytes());
  115. outputStream.write("\r\n".getBytes());
  116. outputStream.write(msg.getBytes());
  117. outputStream.write("\r\n".getBytes());
  118. outputStream.flush();
  119. } catch (IOException ex) {
  120. ex.printStackTrace();
  121. }
  122. } else {
  123. android.util.Log.i("SDCAEDTAG", "file is null");
  124. }
  125. }
  126. }
  127. }

Logger日志管理工具类的更多相关文章

  1. android的Log日志打印管理工具类(一)

    android的Log日志的打印管理工具类: package com.gzcivil.utils; import android.util.Log; /** * 日志打印管理 * * @author ...

  2. Go/Python/Erlang编程语言对比分析及示例 基于RabbitMQ.Client组件实现RabbitMQ可复用的 ConnectionPool(连接池) 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!

    Go/Python/Erlang编程语言对比分析及示例   本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性, ...

  3. LogCook 一个简单实用的Android日志管理工具

    众所周知,日志的管理是软件系统很重要的一部分,千万不可忽略其重要性.完整的日志将会在系统维护中起着异常重要的作用,就好像磨刀不误砍柴工一样,日志就像对系统进行分析的工具,工具便捷了,对系统分析起来就能 ...

  4. 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil

    封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,代码比较简单,主要是把MongoTarget的配置.FileTarget的配置集成到类中,同时利用缓存依赖来判断是否需要重新创 ...

  5. 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,nloglogutil

    封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,代码比较简单,主要是把MongoTarget的配置.FileTarget的配置集成到类中,同时利用缓存依赖来判断是否需要重新创 ...

  6. web项目中日志管理工具的使用

    在web项目中,很多时候会用到日志管理工具,常见的日志管理用具有:JDK logging(配置文件:logging.properties) 和log4j(配置文件:log4j.properties) ...

  7. CentOS7日志管理工具 journalctl

    1.简介 日志管理工具journalctl是centos7上专有的日志管理工具,该工具是从message这个文件里读取信息. Systemd统一管理所有Unit的启动日志.带来的好处就是,可以只用jo ...

  8. Java程序员须知的七个日志管理工具(转)

    Splunk vs. Sumo Logic vs. LogStash vs. GrayLog vs. Loggly vs. PaperTrails vs. Splunk>Storm 英文原文:T ...

  9. 日志管理工具之logrotate

    Logrotate配置和测试 logrotate软件是一个日志管理工具,用于非分隔日志,删除旧的日志文件,并创建新的日志文件,起到“转储作用”,可以为系统节省磁盘空间.logrotate是基于cron ...

随机推荐

  1. Oracle SQL 关键字

    1.UID返回标识当前用户的唯一整数SQL> show userUSER 为"GAO"SQL> select username,user_id from dba_use ...

  2. react学习笔记-05 lifecycle

    根据React官网,react有三个生命状态:装载(Mounting),更新(updating),卸载() 一:装载 装载:componentWillMount/componentDidMount(组 ...

  3. 浅谈C#委托和事件

    委托给了C#操作函数的灵活性,我们可使用委托像操作变量一样来操作函数,其实这个功能并不是C#的首创,早在C++时代就有函数指针这一说法,而在我看来委托就是C#的函数指针,首先先简要的介绍一下委托的基本 ...

  4. MapReduce库类

    Hadoop除了可以让开发人员自行编写map函数和reduce函数,还提供一些常用函数(mapper.reducer和partitioner)的类库,这些类位于 org.apache.hadoop.m ...

  5. 今天写动态canvas柱状图小结

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  6. 转:详解JMeter正则表达式(1)

    1.概览 JMeter中包含范本匹配软件Apache Jakarta ORO .在Jakarta网站上有一些关于它的文档,例如a summary of the pattern matching cha ...

  7. NodeJS学习指南

    七天学会NodeJS NodeJS基础 什么是NodeJS 有啥用处 如何安装 安装程序 编译安装 如何运行 权限问题 模块 require exports module 模块初始化 主模块 完整示例 ...

  8. jquery远程班备忘

    基础第一课: 1. $(obj)获取的是一个集合,因此length最小是1, jquery,如果元素不存在,也不会报错,可通过$(obj).length<1就可以查看该元素是否存在. 2. at ...

  9. 设置radio的选中状态

    $("#s7").click(function () { var a = document.getElementById("s7"); if (a.checke ...

  10. C#读书笔记之object类的基本方法

    The ToString() Method For example:int i = 50;string str = i.ToString(); // returns "50" He ...