`
天涯海角tour
  • 浏览: 173995 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

android 程序日志记录

 
阅读更多
 要加入权限 
    <uses-permission android:name="android.permission.READ_LOGS" />
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Demo8Activity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    String filenameTemp  = Environment.getExternalStorageDirectory().toString()+ "/app.txt";// 照片文件绝对路径
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button btn = (Button) this.findViewById(R.id.button1);
        btn.setOnClickListener(new OnClickListener() {
   @Override
   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    //例子
    try
    {
      int i=10/0;
    }catch(Exception e)
    {
     Log.e("Android", e.getMessage());
         }
    Process mLogcatProc = null;
    BufferedReader reader = null;
    try
    {
            mLogcatProc = Runtime.getRuntime().exec(new String[]
                    {"logcat", "-d", "AndroidRuntime:E Android:V *:S" });//Android为你的Tag
            reader = new BufferedReader(new InputStreamReader
    (mLogcatProc.getInputStream()));
            String line;
            final StringBuilder log = new StringBuilder();
            String separator = System.getProperty("line.separator"); 
            while ((line = reader.readLine()) != null)
            {
                    log.append(line);
                    log.append(separator);
            }
            CreateText();
            print(log.toString());
            // do whatever you want with the log.  I'd recommend using Intents to create an email
    }
    catch (IOException e)
    {
    }
    finally
    {
            if (reader != null)
                    try
                    {
                            reader.close();
                    }
                    catch (IOException e)
                    {
                    }
    } 
   }
         
  }); 
        
        
    }
   
    //创建文件夹及文件 
    public  void CreateText() throws IOException { 
        File dir = new File(filenameTemp); 
        if (!dir.exists()) { 
              try { 
                  //在指定的文件夹中创建文件 
                  System.out.println(dir.createNewFile()+"---------------------");;
            } catch (Exception e) { 
            } 
        } 
 
    } 
     
    //向已创建的文件中写入数据 
    public  void print(String str) { 
        FileWriter fw = null; 
        BufferedWriter bw = null; 
        String datetime = ""; 
        try { 
            SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM-dd" + " " 
                    + "hh:mm:ss"); 
            datetime = tempDate.format(new java.util.Date()).toString(); 
            fw = new FileWriter(filenameTemp, true);// 
            // 创建FileWriter对象,用来写入字符流 
            bw = new BufferedWriter(fw); // 将缓冲对文件的输出 
            String myreadline = datetime + "[]" + str; 
             
            bw.write(myreadline + "\n"); // 写入文件 
            bw.newLine(); 
            bw.flush(); // 刷新该流的缓冲 
            bw.close(); 
            fw.close(); 
        } catch (IOException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
            try { 
                bw.close(); 
                fw.close(); 
            } catch (IOException e1) { 
                // TODO Auto-generated catch block 
            } 
        } 
    } 
 @Override
 public void onClick(View arg0) {
  // TODO Auto-generated method stub
  
 } 
   /**
     * 监听退出事件
     */
    public boolean onKeyDown(int keyCode, KeyEvent event) {
       if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // 确认对话框
        final AlertDialog isExit = new AlertDialog.Builder(this).create();
        // 对话框标题
        isExit.setTitle("系统提示");
        // 对话框消息
        isExit.setMessage("确定要退出吗");
        // 实例化对话框上的按钮点击事件监听
        DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int which) {
          switch (which) {
          case AlertDialog.BUTTON1:// "确认"按钮退出程序
            android.os.Process.killProcess(android.os.Process.myPid());
            System.exit(0);
           break;
          case AlertDialog.BUTTON2:// "取消"第二个按钮取消对话框
           isExit.cancel();
           break;
          default:
           break;
          }
         }
        };
        // 注册监听
        isExit.setButton("确定", listener);
        isExit.setButton2("取消", listener);
        // 显示对话框
        isExit.show();
        return false;
       }
       return false;
      }
}

日志输出到文件是


2012-02-28 05:06:00[]--------- beginning of /dev/log/system--------- beginning of /dev/log/mainE/AndroidRuntime(22045): divide by zero
关于logcat 命令的用法可以查看

http://developer.android.com/guide/developing/tools/adb.html#usinglogcat

 

Here's an example of a filter expression that suppresses all log messages except those with the tag "ActivityManager", at priority "Info" or above, and all log messages with tag "MyApp", with priority "Debug" or above:

adb logcat ActivityManager:I MyApp:D *:S
分享到:
评论

相关推荐

    Android 本地日志记录

    在Android应用开发中,日志记录是一个至关重要的环节,它帮助开发者追踪应用程序的运行状态,定位和解决问题。本文将深入探讨如何实现Android本地日志记录,包括自动记录崩溃信息、设备信息,以及手动添加Log信息,...

    Android Gps日志记录程序源码.rar

    在Android平台上,GPS日志记录程序是一个非常实用的工具,它可以帮助用户收集和分析设备的地理位置数据。这个“Android Gps日志记录程序源码”提供了实现这一功能的完整代码,对于开发者来说,是一个很好的学习和...

    Android Gps日志记录程序源码

    在Android开发中,GPS日志记录程序是一种常见的应用,它能够帮助用户收集设备的位置信息,并将其存储为日志,便于分析或后期使用。这个“Android Gps日志记录程序源码”提供了一个基础的框架,可以帮助开发者理解...

    Android本地日志记录

    在Android开发中,日志记录是一项非常重要的任务,它能够帮助开发者追踪应用程序的运行状态,定位和解决问题。本文将深入探讨如何实现“Android本地日志记录”,包括自动记录崩溃信息、设备信息,以及手动添加自定义...

    AndroidGps日志记录程序源码.zip

    在Android平台上,GPS(全球定位系统)日志记录程序是一个非常实用的应用,它能够帮助用户追踪和记录设备的地理位置信息。这份"Android Gps日志记录程序源码"提供了实现此类应用的完整代码,对于学习Android开发,...

    Android程序研发源码Android Gps日志记录程序源码.rar

    这篇文档将深入解析Android Gps日志记录程序的源码,帮助你理解如何在Android平台上开发GPS定位功能并记录相关的日志数据。 首先,我们来看看这个项目的基本结构: 1. `.classpath` 和 `.project` 文件:这两个是...

    Android和Gps日志记录程序源码

    Android GPS日志记录程序是一种应用程序,它允许用户在Android设备上收集和记录GPS定位数据。这类程序通常用于追踪用户的位置信息,例如户外运动路径、驾驶路线或者地理数据收集。源码是开发者用来学习、理解或修改...

    Android Gps日志记录程序源码.zip

    在Android平台上,GPS日志记录程序是一个常见的应用,它能够帮助用户追踪和记录他们的地理位置信息。这个"Android Gps日志记录程序源码.zip"文件包含了一个完整的Android应用程序项目,用于实现这一功能。通过分析和...

    android版手机日志程序

    在Android平台上,手机日志程序是一个非常实用的工具,它能够帮助开发者和用户记录并分析设备上的各种系统和应用日志。"android版手机日志程序"作为一个专门为Android设计的日志收集工具,它包含了以下几个核心知识...

    Android-使用Kotlin和Timber轻松实现Android日志记录

    在Android应用开发中,日志记录是一个至关重要的环节,它帮助开发者追踪应用程序的运行状态,定位和解决问题。本文将深入探讨如何使用Kotlin语言和Timber库来实现高效且易于管理的日志系统。 首先,让我们了解...

    Android源码——Gps日志记录程序源码.zip

    这份"Android源码——Gps日志记录程序源码.zip"提供的是一段实现GPS日志记录功能的源代码,可以帮助开发者理解如何在Android应用中集成GPS跟踪和日志记录。通过分析这些源码,我们可以学习到以下几个关键知识点: 1...

    Android手机端崩溃日志记录.zip

    这个名为"Android手机端崩溃日志记录.zip"的文件很可能包含了一个开源项目,用于帮助开发者轻松地记录和管理Android设备上的应用崩溃日志。该项目名为"SpiderMan-master",可能是借鉴了漫威角色蜘蛛侠的名字,暗示它...

    Android Gps日志记录程序源码.zip项目安卓应用源码下载

    Android Gps日志记录程序源码.zip项目安卓应用源码下载Android Gps日志记录程序源码.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考

    用LogWriter将Android应用程序的日志信息写入文件

    在Android开发中,日志记录是调试和诊断应用程序不可或缺的一部分。`LogWriter`是一个自定义工具,用于将Android应用的日志信息写入本地文件,而不是仅仅依赖于系统的`Logcat`。这使得开发者能够更方便地保存、查看...

    Android Gps日志记录程序源码-IT计算机-毕业设计.zip

    这是一个关于Android平台GPS日志记录程序的源码项目,适合计算机专业的学生进行毕业设计学习。在深入探讨这个项目之前,让我们先理解一下Android系统、GPS技术以及日志记录在移动应用开发中的重要性。 Android是一...

Global site tag (gtag.js) - Google Analytics