android开发必备日志打印工具类
今天给大家献上一款好用的日志打印工具。大家在平时的开发中用的最多的可能就是Log.i("",""),Log.e("","")...,在要查看的日志比较少的情况下,这种方法用起来确实方便,很容易写,也很容易查看,然而不知道大家有没有遇到过这样一种情况,如果你要查看的数据量非常大,然后用Log类打印出来以后,却发现只显示了一部分数据,大部分数据被截断了。
是的,log打印出来的日志长度是有限的,我之前由于要分析一段从服务器获取的数据,数据量比较大,用log类打印之后只能看到一部分数据,大部分数据都被截断了,后来就自己写了一个日志打印工具类,把日志打印到手机SD卡上,这样就能看到完整的数据,该工具我已封装好,分享给大家。
public class LogTools {
public static void dailyLog(String title, String log) {
try {
// 如果外部存储卡存在且可读写
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat tf = new SimpleDateFormat("HH:mm:ss:SSS");
String path = Environment.getExternalStorageDirectory()
.getAbsolutePath()
+ File.separator
+ "mylog"
+ File.separator
+ "debuglog["
+ df.format(date)
+ "]"
+ ".txt";
File file = new File(path);
// 如果文件不存在,则重新创建
if (!file.exists()) {
// 最后一级是文件,前面是路径,如果路径不存在则创建路径
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
// 创建日志文件
file.createNewFile();
}
//写日志
FileWriter fw = new FileWriter(file, true);
fw.flush();
fw.write("\n[" + df.format(date) +"--"+ tf.format(date) + "]\n");
fw.write(title + ": " + log);
fw.write("\n\n");
fw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
调用:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LogTools.dailyLog("我的日志", "----33222211111111118838777777777777766666666666444444444");
}
}
本工具源码下载
版权声明:本文为博主原创文章,未经博主允许不得转载。若有错误地方,还望批评指正,不胜感激。
android开发必备日志打印工具类的更多相关文章
- Android开发调试日志工具类[支持保存到SD卡]
直接上代码: package com.example.callstatus; import java.io.File; import java.io.FileWriter; import java.i ...
- Android 开发必备
Android 开发必备 http://www.androiddevtools.cn/ 收集整理Android开发所需的Android SDK.开发中用到的工具.Android开发教程.Android ...
- wemall app商城源码android开发MD5加密工具类
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...
- 【Bugly 技术干货】Android开发必备知识:为什么说Kotlin值得一试
1.Hello, Kotlin Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 1. ...
- Android 开发必备的知识点——JVM基础【转】
image 1.JVM与操作系统的关系 Java Virtual Machine JVM 全称 Java Virtual Machine,也就是我们耳熟能详的 Java 虚拟机.它能识别 .class ...
- [转载]Android开发必备的21个免费资源和工具
转载自: http://blog.csdn.net/shimiso/article/details/6788375 Android移动开发平台现在不是一个“火”字能形容的,今年Android平台在市场 ...
- Android开发实现HttpClient工具类
在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient来方便我们使用各种Http服务.你可以把HttpClient想 ...
- Android utils 之 日志工具类
工具类 在开发的过程中,我们时常会对代码执行特定的处理,而这部分处理在代码中可能多次用到,为了代码的统一性.规范性等,通过建工具类的方式统一处理.接下来我会罗列各种工具类. 日志工具类 在utils文 ...
- 6本Android开发必备图书
学习一样新事物或许有多种方式,报培训班,看视频,向高手请教等等,但一本好书往往可以让你少走很多弯路,事半功倍.今天与大家分享一些Android开发值得一读的书籍,希望对新手安卓开发者们有所帮助. 1. ...
随机推荐
- 【转载】JavaEE权限管理分析
JavaEE权限管理分析 一.背景 在 Web 应用开发中,安全一直是非常重要的一个方面.安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来.如果在应用开发的后期才考虑安全的问题,就可 ...
- CAS单点登录配置[1]:准备工作
关于CAS是什么这里就不在赘述,网友将它比喻成旅游景点的套票,买了一个套票就可以观看所有景点,不需要一个景点买一次票...我们重点介绍CAS单点登录的配置. 工具/原料 1.配置好JDK环境,否则不方 ...
- show processlist 输出ID 和 information_schema.PROCESSLIST 的id,information_schema.innodb_trx的TRX_MYSQL_T
Session 1: mysql> start transaction; Query OK, 0 rows affected (0.00 sec) mysql> update Client ...
- 开始hadoop
hadoop介绍 分布式存储系统HDFS(Hadoop Distributed File System),提供了高可靠性.高扩展性和高吞吐率的数据存储服务: 资源管理系统YARN(Yet Anothe ...
- 【HDOJ】2133 What day is it
需要注意数据有效性. #include <stdio.h> #define isLeapYear(y) (y%4==0&&y%100!=0)||(y%400==0) ][] ...
- linux使用crontab -e 遇到No space left on device
今天用linux的crontab -e编辑定时脚本的时候.遇到No space left on device的错误. 网上找了半天终于知道原因了,昨天晚上我的一个任务因为路径没写对,到时crontab ...
- 汉企C#面向对象——继承
public class Shengwu { private string _Name; public string Name { get { return _Name; } set { _Name ...
- Mysql技术内幕-笔记-第三章 查询处理
第三章 查询处理 逻辑查询处理:(8) SELECT (9) DISTINCT <select_list> (1) FROM <left_table> (3) <join ...
- ACM2031_进制转换(使用了递归,代码超少的啦!!)
进制转换 Problem Description 输入一个十进制数N,将它转换成R进制数输出. Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R& ...
- Yii常用技巧总结
//YII framework路径 Yii::getFrameworkPath(); //protected/runtime Yii::app()->getRuntimePath(); //pr ...