有时候,我们在开发状态下,需要打印一些日志信息,而发布状态下又想去掉这些日志信息(打印出来的信息可能会泄露),如果没有好的日志管理,这时候,你会发现,当初写的日志输出,还有一个一个找出来,然后删掉,所以,一个好的日志管理必不可少。
这是我项目中的一个日志管理类,可自行添加所需的输出方法。
public class MyLog {
/**
* 是否是开发状态,正式发布要置为false
*/
public static final boolean DEBUG=true;
public static void v(Class<?> clzz,String msg){
if(DEBUG){
Log.v(clzz.getSimpleName(), msg);
}
}
public static void e(Class<?> clzz,String msg){
if(DEBUG){
Log.e(clzz.getSimpleName(), msg);
}
}
/**
*
* 2014-8-22 下午3:52:00
* @param msg
* @TODO 打印日志输出到文件log.txt
*/
@SuppressLint("SimpleDateFormat")
public static void printLog(final String msg){
if(!DEBUG) return;
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = formatter.format(new Date());
StringBuffer sb = new StringBuffer();
sb.append(time+"\n");
sb.append(msg+"\n");
try {
String fileName = "log.txt";
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator+"cache/";
File dir = new File(path);
if (!dir.exists()) {
dir.mkdirs();
}
File file=new File(path+fileName);
if(!file.exists()){
file.createNewFile();
}
FileOutputStream fos = new FileOutputStream(path+fileName, true);
fos.write(sb.toString().getBytes());
fos.close();
}
} catch (Exception e) {
}
return null;
}
}.execute();
}
}