[Android实例] Log输出到sdcard工具类

本帖最后由 bibaboone 于 2013-5-7 18:06 编辑

适用于手机单独运行,开机启动或待机时不能使用数据线连接eclipse时,查看程序运行log输出状态

大家可以根据自己的需要,更改代码中cmd命令得到自己所要的log输出
logcat的使用可以参照
http://blog.csdn.net/tiantianshangcha/article/details/6288537#t1


需要在AndroidManifest.xml中加入下面两个权限

<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

[mw_shl_code=java,true]package com.logcat_util.util;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import android.os.Environment;

/**
* 适用于手机单独运行,开机启动或待机时不能使用数据线连接eclipse时,查看程序运行log输出状态

* @author liulongbin
*
*/
public class LogcatUtil {
        
        private static String cmd;
        
        /**
         * 在sdcard根目录中输出标签为tag的log
         * 
         * @param tag log的标签
         */
        public static void startLog(String tag) { 
                startLog(null, tag);
        }
        
        /**
         * 在sdcard根目录中输出标签为tag的log
         * 
         * @param fileName        sdcard上生成的log文件名
         * @param tag log的标签
         */
        public static void startLog(String fileName,String tag) { 
                if (fileName==null) {
                        fileName=tag;
                }
                startLog(null, fileName,tag);
        }
        
        /**
         * 在saveiDir目录中输出标签为tag的log
         * 
         * @param saveiDir log在sdcard中指定名称的文件夹中输出
         * @param fileName        sdcard上生成的log文件名
         * @param tag log的标签
         */
        public static void startLog(String saveiDir, String fileName,String tag) { 
                if (saveiDir==null) {
                        startLog(Environment.getExternalStorageDirectory().getPath()+"/",fileName, tag,"V");
                }else
                startLog(Environment.getExternalStorageDirectory().getPath()+"/"+saveiDir+"/",fileName, tag,"V");
        }
        
        
    /**
     * 在saveiDir目录中输出标签为tag 优先级为proority 的log
     * 
     * @param saveiDir log在sdcard中指定名称的文件夹中输出
         * @param fileName        sdcard上生成的log文件名
     * @param tag        log的标签
     * @param priority        V — Verbose (lowest priority);
     *                                         D — Debug;
     *                                         I — Info;
     *                                         W — Warning;
     *                                         E — Error;
     *                                         F — Fatal;
     *                                         S — Silent (highest priority, on which nothing is ever printed)
     */
    public static void startLog(String saveiDir, String fileName,String tag,String priority) {  
        SimpleDateFormat format = new SimpleDateFormat("yyMMdd_HHmmss");  
        String nowStr = format.format(new Date());  
                new File(saveiDir).mkdirs();  
                cmd="logcat -d -v time -f "+saveiDir+fileName+".log -s "+tag+":"+priority;
        try {  
            Runtime.getRuntime().exec("rm "+saveiDir+fileName+".log");
            Runtime.getRuntime().exec(cmd);
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  
}
[/mw_shl_code]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值