Adb logcat的使用

1.adb logcat过滤器表达式的格式是tag:priority ... ,其中tag是标记, priority是最小的优先级,该标记标识的所有大于等于指定优先级的消息被写入日志。也可以在一个过滤器表达式中提供多个这样的过滤,它们之间用空格隔开。

下面给出的例子是仅输出标记为“MyActivity”并且优先级大于等于“Info”和标记为“MyApp”并且优先级大于等于“Verbose”的日志:

adb logcat MyActivity:I MyApp:V *:S

2.优先级是下面的字符,顺序是从低到高:

  • V — 明细 (最低优先级)
  • D — 调试
  • I — 信息
  • W — 警告
  • E — 错误
  • F — 严重错误
  • S — 无记载 (最高优先级,没有什么会被记载)
3.日志输出到文件

        public static void  saveLogToSD() {
        File appDirectory = new File( Environment.getExternalStorageDirectory() + "/MyPersonalAppFolder" );
        File logDirectory = new File( appDirectory + "/log" );
        File logFile = new File( logDirectory, "logcat" + System.currentTimeMillis() + ".txt" );

        // create app folder
        if ( !appDirectory.exists() ) {
            appDirectory.mkdir();
        }

        // create log folder
        if ( !logDirectory.exists() ) {
            logDirectory.mkdir();
        }

        // clear the previous logcat and then write the new one to the file
        try {
            Process process = Runtime.getRuntime().exec( "logcat -c");
            process = Runtime.getRuntime().exec( "logcat -f " + logFile+" *:S onSensorChanged:I");   //  + " *:S MyActivity:D MyActivity2:D");
        } catch ( IOException e ) {
            e.printStackTrace();
        }
	}
4.adb命令输出到文件

adb -d logcat -f /sdcard/log.txt
注意:Ctrl+C停止,否则不会保存

5.直接输出到文件

package com.fiberhome.test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {
	OutputStreamWriter printWriter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
    	File appDirectory = new File(Environment.getExternalStorageDirectory()
				+ "/FsgFolder");
		File logDirectory = new File(appDirectory + "/log");
		File logFile = new File(logDirectory, "logcat"
				+ System.currentTimeMillis() + ".txt");
		// create app folder
		if (!appDirectory.exists()) {
			appDirectory.mkdir();
		}

		// create log folder
		if (!logDirectory.exists()) {
			logDirectory.mkdir();
		}
		try {
			printWriter=new OutputStreamWriter(new FileOutputStream(logFile), "GBK");
		} catch (FileNotFoundException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} catch (UnsupportedEncodingException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		
		try {
			printWriter.append("----"); //所需要打印的信息
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
    }
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值