日志工具类
来源:互联网 发布:网络神偷破解安卓版 编辑:程序博客网 时间:2024/05/16 17:47
package com.sunt.test.logutil;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
public class Log {
private Log() {
}
public static <T> void printErr(T e, String path) {
// 参数校验e、path
if (e == null || path == null) {
System.exit(0);
}
// 获取日志条数与文件对象
List<Object> list = getCount(path);
int no = (int) list.get(0);
File file = (File) list.get(1);
// 声明Writer对象
Writer writer = null;
try {
// 初始化Writer并且设置追加
writer = new FileWriter(file, true);
// 获取时间与日期,通过日期的格式化对象转换成字符串String
String dete = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
.format(Calendar.getInstance().getTime());
// 获取异常发生所在位置的对象StackTraceElement的数组
StackTraceElement[] arrSte = ((Throwable) e).getStackTrace();
// 写入日志文件第几条日志
writer.write("第" + no);
// 写入日志文件异常所发生的时间与日期
writer.write("条,发生时间为:" + dete + ", 发生位置为:");
// 写入日志文件异常所在的位置,以及所有调用到错误语句的位置
for (int i = 0; i < arrSte.length; i++) {
writer.write(" " + arrSte[i]);
}
// 写入日志文件发生异常的错误信息
writer.write(", 错误信息为:" + e);
// 写入完毕换行
writer.write("\r\n");
} catch (IOException err) {
} finally {
try {
// 关闭writer之前需判断writer是否为空避免空指针 异常
if (writer != null) {
writer.close();
}
} catch (IOException e1) {
}
}
}
/**
* 用来获取当前写入的条数并且根据路径构建出File文件对象并返回
*
* @param path
* @return
*/
private static List<Object> getCount(String path) {
// 创建要返回的List对象
List<Object> list = new ArrayList<>();
// 初始化日志条数为1
int count = 1;
// 构建File文件对象(注:如果该文件不存在,会自动创建,亲测!)
File file = new File(path);
// 声明文件读取对象BufferedReader
BufferedReader br = null;
try {
// 初始化BufferedReader
br = new BufferedReader(new FileReader(file));
// 开始读写文件,如果读到的这行不为空说明还有,就count++
while (br.readLine() != null) {
count++;
}
} catch (IOException e) {
} finally {
try {
// 关闭br之前需判断br是否为空避免空指针 异常
if (br != null) {
br.close();
}
} catch (IOException e) {
}
}
// 读取完毕之后向List集合中添加count和file对象
list.add(count);
list.add(file);
// 返回List集合
return list;
}
}
0 0
- android日志工具类
- Android 日志工具类
- 日志工具类
- 日志工具类
- Android日志工具类
- android日志工具类
- 日志工具类
- 自定义日志工具类
- 一个日志工具类
- Android日志工具类
- 日志工具类
- Log日志工具类
- Log日志工具类
- 日志工具类
- Log日志工具类
- Log日志工具类
- 日志工具类
- 日志工具类:Log
- 广播的封装(动态注册)
- python环境安装
- myeclipse2013 git插件安装
- Eclipse设置文件默认打开方式
- [笔记]基本包装类型
- 日志工具类
- 交换两个数
- 关于CCNA的培训课程(1)-- 网络基础部分
- JDBC的简单实现和缺点
- android 自带 浏览器的默认标签
- Maven安装过程及手动添加JAR包到本地仓库详解
- Android推送技术研究
- 比较两个数的大小
- java 静态语句块(static block)