Android 写log

原文链接:http://blog.youkuaiyun.com/wyzxk888/article/details/7478152

在Android开发的时候经常会遇到手机offline,影响日志的查看与分析。为此,我写了一个简单的类用于将日志写入文件中,便于以后调试的时候可以拿来使用:

[java]  view plain copy
  1. package org.test;  
  2.   
  3. import java.io.BufferedWriter;  
  4. import java.io.File;  
  5. import java.io.FileWriter;  
  6. import java.io.IOException;  
  7. import java.io.Writer;  
  8. import java.text.SimpleDateFormat;  
  9. import java.util.Date;  
  10.   
  11. public class LogWriter {  
  12.       
  13.     private static LogWriter mLogWriter;  
  14.   
  15.     private static String mPath;  
  16.       
  17.     private static Writer mWriter;  
  18.       
  19.     private static SimpleDateFormat df;  
  20.       
  21.     private LogWriter(String file_path) {  
  22.         this.mPath = file_path;  
  23.         this.mWriter = null;  
  24.     }  
  25.       
  26.     public static LogWriter open(String file_path) throws IOException {  
  27.         if (mLogWriter == null) {  
  28.             mLogWriter = new LogWriter(file_path);  
  29.         }  
  30.         File mFile = new File(mPath);  
  31.         mWriter = new BufferedWriter(new FileWriter(mPath), 2048);  
  32.         df = new SimpleDateFormat("[yy-MM-dd hh:mm:ss]: ");  
  33.           
  34.         return mLogWriter;  
  35.     }  
  36.       
  37.     public void close() throws IOException {  
  38.         mWriter.close();  
  39.     }  
  40.       
  41.     public void print(String log) throws IOException {  
  42.         mWriter.write(df.format(new Date()));  
  43.         mWriter.write(log);  
  44.         mWriter.write("\n");  
  45.         mWriter.flush();  
  46.     }  
  47.       
  48.     public void print(Class cls, String log) throws IOException { //如果还想看是在哪个类里可以用这个方法  
  49.         mWriter.write(df.format(new Date()));  
  50.         mWriter.write(cls.getSimpleName() + " ");  
  51.         mWriter.write(log);  
  52.         mWriter.write("\n");  
  53.         mWriter.flush();  
  54.     }  
  55.       
  56. }  
感觉在整个程序中进行写日志操作之后用到一个实例,所以我用了单例模式


使用这个类的代码:

[java]  view plain copy
  1. private LogWriter mLogWriter;  
  2.   
  3.    public void onCreate(Bundle savedInstanceState) {  
  4.        super.onCreate(savedInstanceState);     
  5.        setContentView(R.layout.main);  
  6.          
  7.        File logf = new File(Environment.getExternalStorageDirectory()  
  8.             + File.separator + "DemoLog.txt");  
  9.          
  10.        try {  
  11.         mLogWriter = LogWriter.open(logf.getAbsolutePath());  
  12.     } catch (IOException e) {  
  13.         // TODO Auto-generated catch block  
  14.         Log.d(tag, e.getMessage());  
  15.     }  
  16.          
  17.        log("onCreate()");  
  18.    }  
  19.      
  20.    public void log(String msg) {  
  21.     Log.d(tag, msg);  
  22.       
  23.     try {  
  24.         mLogWriter.print(AlarmManagerDemo.class, msg);  
  25.     } catch (IOException e) {  
  26.         // TODO Auto-generated catch block  
  27.         Log.d(tag, e.getMessage());  
  28.     }  
  29.    }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值