概述
安卓Android如何手机程序崩溃日志并上传到服务器呢?直接会用到Thread线程里面的UncaughtExceptionHandler接口方法,我们可以自定义一个类CrashHandler,代码如下:package com.tpyyes;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.lang.Thread.UncaughtExceptionHandler;
import java.util.Date;
import android.content.Context;
import android.os.Environment;
import android.util.Log;
public class CrashHandler implements UncaughtExceptionHandler {
private static CrashHandler instance;
public static CrashHandler getInstance() {
if (instance == null) {
instance = new CrashHandler();
}
return instance;
}
public void init(Context ctx) {
Thread.setDefaultUncaughtExceptionHandler(this);
}
/**
* 核心方法,当程序crash 会回调此方法, Throwable中存放这错误日志
*/
@Override
public void uncaughtException(Thread arg0, Throwable arg1) {
String logPath;
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
//logPath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + File.separator + "log";
logPath = "/sdcard/Download/";
File file = new File(logPath);
if (!file.exists()) {
file.mkdirs();
}
try {
FileWriter fw = new FileWriter(logPath + File.separator + "errorlog.log", true);
fw.write(new Date() + "n");
// 错误信息
// 这里还可以加上当前的系统版本,手机型号,MAC地址 等等信息
StackTraceElement[] stackTrace = arg1.getStackTrace();
fw.write(arg1.getMessage() + "n");
for (int i = 0; i
fw.write("file:" + stackTrace[i].getFileName() + " class:"
+ stackTrace[i].getClassName() + " method:"
+ stackTrace[i].getMethodName() + " line:"
+ stackTrace[i].getLineNumber() + "n");
}
fw.write("n");
fw.close();
// 上传错误信息到服务器
// uploadToServer();
} catch (IOException e) {
Log.e("crash handler", "load file failed...", e.getCause());
}
}
arg1.printStackTrace();
android.os.Process.killProcess(android.os.Process.myPid());
}
}
如何在Android程序中使用我们自定义的程序崩溃日志呢?只需要在程序入口MainActivity类中的onCreate方法中加入如下代码即可://全局异常捕获
CrashHandler crashHandler = CrashHandler.getInstance();
crashHandler.init(getApplicationContext());
至于上传生成的errorlog.log日志文件如何上传,就和普通的Java文件上传是一样的,等再onCreate方法中生成之后,就调用上传文件的方法即可,这里不再赘述。
来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/android/1015.html
最后
以上就是可爱羊为你收集整理的java 崩溃日志_Android收集程序崩溃日志的方法的全部内容,希望文章能够帮你解决java 崩溃日志_Android收集程序崩溃日志的方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复