android开发------------------Log日志工具类(LogUtils)
来源:互联网 发布:笔记本电脑录像软件 编辑:程序博客网 时间:2024/05/20 11:25
博客为 有时个哥 原创,如需转载请标明出处:http://blog.csdn.net/ls703/article/details/42973553
在应用开发中,我们需要常加一些日志打印来做调试,现在给出一个日志工具类
package ls.utils;import java.io.PrintWriter;import java.io.StringWriter;import java.io.Writer;import android.text.TextUtils;import android.text.format.DateFormat;import android.util.Log;import com.config.AppConfig;/** * Title: LogUtils.java Description: 日志工具类:开发过程中,日志输出 * * @author song * @date 2014-9-9 下午1:22:55 * @version V1.0 */public class LogUtils {/** * isWrite:用于开关是否吧日志写入txt文件中</p> */private static final boolean isWrite = false;/** * isDebug :是用来控制,是否打印日志 */private static final boolean isDeBug = true;/** * 存放日志文件的所在路径 */private static final String DIRPATH = AppConfig.LOG_DIRPATH;// private static final String DIRPATH = "/log";/** * 存放日志的文本名 */private static final String LOGNAME = AppConfig.LOG_FILENAME;// private static final String LOGNAME = "log.txt";/** * 设置时间的格式 */private static final String INFORMAT = "yyyy-MM-dd HH:mm:ss";/** * VERBOSE日志形式的标识符 */public static final int VERBOSE = 5;/** * DEBUG日志形式的标识符 */public static final int DEBUG = 4;/** * INFO日志形式的标识符 */public static final int INFO = 3;/** * WARN日志形式的标识符 */public static final int WARN = 2;/** * ERROR日志形式的标识符 */public static final int ERROR = 1;/** * 把异常用来输出日志的综合方法 * * @param @param tag 日志标识 * @param @param throwable 抛出的异常 * @param @param type 日志类型 * @return void 返回类型 * @throws */public static void log(String tag, Throwable throwable, int type) {log(tag, exToString(throwable), type);}/** * 用来输出日志的综合方法(文本内容) * * @param @param tag 日志标识 * @param @param msg 要输出的内容 * @param @param type 日志类型 * @return void 返回类型 * @throws */public static void log(String tag, String msg, int type) {switch (type) {case VERBOSE:v(tag, msg);// verbose等级break;case DEBUG:d(tag, msg);// debug等级break;case INFO:i(tag, msg);// info等级break;case WARN:w(tag, msg);// warn等级break;case ERROR:e(tag, msg);// error等级break;default:break;}}/** * verbose等级的日志输出 * * @param tag * 日志标识 * @param msg * 要输出的内容 * @return void 返回类型 * @throws */public static void v(String tag, String msg) {// 是否开启日志输出if (isDeBug) {Log.v(tag, msg);}// 是否将日志写入文件if (isWrite) {write(tag, msg);}}/** * debug等级的日志输出 * * @param tag * 标识 * @param msg * 内容 * @return void 返回类型 * @throws */public static void d(String tag, String msg) {if (isDeBug) {Log.d(tag, msg);}if (isWrite) {write(tag, msg);}}/** * info等级的日志输出 * * @param tag 标识 * @param msg 内容 * @return void 返回类型 * @throws */public static void i(String tag, String msg) {if (isDeBug) {Log.i(tag, msg);}if (isWrite) {write(tag, msg);}}/** * warn等级的日志输出 * * @param tag 标识 * @param msg 内容 * @return void 返回类型 * @throws */public static void w(String tag, String msg) {if (isDeBug) {Log.w(tag, msg);}if (isWrite) {write(tag, msg);}}/** * error等级的日志输出 * * @param tag 标识 * @param msg 内容 * @return void 返回类型 */public static void e(String tag, String msg) {if (isDeBug) {Log.w(tag, msg);}if (isWrite) {write(tag, msg);}}/** * 用于把日志内容写入制定的文件 * * @param @param tag 标识 * @param @param msg 要输出的内容 * @return void 返回类型 * @throws */public static void write(String tag, String msg) {String path = FileUtils.createMkdirsAndFiles(DIRPATH, LOGNAME);if (TextUtils.isEmpty(path)) {return;}String log = DateFormat.format(INFORMAT, System.currentTimeMillis())+ tag+ "========>>"+ msg+ "\n=================================分割线=================================";FileUtils.write2File(path, log, true);}/** * 用于把日志内容写入制定的文件 * * @param tag * 标签 * @param ex * 异常 */public static void write(Throwable ex) {write("", exToString(ex));}/** * 把异常信息转化为字符串 * * @param ex 异常信息 * @return 异常信息字符串 */private static String exToString(Throwable ex) {Writer writer = new StringWriter();PrintWriter printWriter = new PrintWriter(writer);ex.printStackTrace(printWriter);printWriter.close();String result = writer.toString();return result;}}
其中的AppConfig.LOG_DIRPATH;和AppConfig.LOG_FILENAME;是我在配置常量类中设置的存放log日志的文件路径和文件名,可自己定义;
FileUtils.createMkdirsAndFiles(DIRPATH, LOGNAME);是另一个工具类,随还没补充完全,但这里是可以用的,以后补充后在给详细的,现在先给出现在的,以便大家使用
package ls.utils;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import android.os.Environment;import android.text.TextUtils;/** * * Title: FileUtils.java * Description: 对sd卡的文件相关操作 * @author Liusong * @date 2015-1-12 * @version V1.0 */public class FileUtils {/** * 判断sdcrad是否已经安装 * @return boolean true安装 false 未安装 */public static boolean isSDCardMounted(){return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());}/** * 得到sdcard的路径 * @return */public static String getSDCardRoot(){System.out.println(isSDCardMounted()+Environment.getExternalStorageState());if(isSDCardMounted()){return Environment.getExternalStorageDirectory().getAbsolutePath();}return "";}/** * 创建文件的路径及文件 * @param path 路径,方法中以默认包含了sdcard的路径,path格式是"/path...." * @param filename 文件的名称 * @return 返回文件的路径,创建失败的话返回为空 */public static String createMkdirsAndFiles(String path, String filename) {if (TextUtils.isEmpty(path)) {throw new RuntimeException("路径为空");}path = getSDCardRoot()+path;File file = new File(path);if (!file.exists()) {try {file.mkdirs();} catch (Exception e) {throw new RuntimeException("创建文件夹不成功");}} File f = new File(file, filename);if(!f.exists()){try {f.createNewFile();} catch (IOException e) {throw new RuntimeException("创建文件不成功");}}return f.getAbsolutePath();}/** * 把内容写入文件 * @param path 文件路径 * @param text 内容 */public static void write2File(String path,String text,boolean append){BufferedWriter bw = null;try {//1.创建流对象bw = new BufferedWriter(new FileWriter(path,append));//2.写入文件bw.write(text);//换行刷新bw.newLine();bw.flush();} catch (IOException e) {e.printStackTrace();}finally{//4.关闭流资源if(bw!= null){try {bw.close();} catch (IOException e) {e.printStackTrace();}}}}/** * 删除文件 * @param path * @return */public static boolean deleteFile(String path){if(TextUtils.isEmpty(path)){throw new RuntimeException("路径为空");}File file = new File(path);if(file.exists()){try {file.delete();return true;} catch (Exception e) {e.printStackTrace();}}return false;}}
logUtils的使用个正常的一样使用,其中有两个变量来控制是否打印日志,这是避免,开发完成后,我们不可能把日志输出语句一个一个的去关闭,所以只要我们把
/** * isWrite:用于开关是否吧日志写入txt文件中</p> */private static final boolean isWrite = false;/** * isDebug :是用来控制,是否打印日志 */private static final boolean isDeBug = true; 把这两个变量改成false,就可以停止日志的打印,这个类还可配合UncaughtExceptionHandler,来记录未捕获的全局异常,写入log文件,以便开发者寻找异常原因,来经行修改应用。
1 0
- android开发------------------Log日志工具类(LogUtils)
- Android开发之封装log打印日志的工具类,实用logutils详细代码
- Android开发工具类--LogUtils
- LogUtils类统一管理log日志
- 日志打印工具类LogUtils
- android 一个很好使用的 LogUtils 日志工具类
- Android日志打印类LogUtils
- Android日志打印类LogUtils
- Android日志管理工具类LogUtils
- 对于Android系统Log输出日志的封装LogUtils
- Android 日志工具类log
- Android工具类——LogUtils
- 安卓常用工具类-LogUtils【日志打印工具类】
- 自定义LogUtils工具类
- Android日志工具Log
- Android日志工具Log
- android Log工具框架,LogUtils让你摆脱TAG的魔爪
- Android日志工具Log(android.util.Log)
- leetcode_length of last word_easy
- QtQuick2实现媒体播放器(界面)
- PHP缓存技术OB系统函数
- String&StringBuffer&StringBuilder
- 顺时针打印矩阵
- android开发------------------Log日志工具类(LogUtils)
- Bullet(Cocos2dx)之凸多面体形状和组合形状
- iOS开发网络篇—HTTP协议
- 关于导入Java项目乱码问题解决
- 3.3V数字信号转5V信号(低成本)
- 第七周项目2 输出长方形的边长和面积
- 关于ListView的优化总结
- SDUT 2556 传说中的数据结构
- 前端开发规范之html编码规范