安卓Android如何手机程序崩溃日志并上传到服务器呢?直接会用到Thread线程里面的UncaughtExceptionHandler接口方法,我们可以自定义一个类CrashHandler,代码如下:packagecom.tpyyes;
importjava.io.File;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.LineNumberReader;
importjava.lang.Thread.UncaughtExceptionHandler;
importjava.util.Date;
importandroid.content.Context;
importandroid.os.Environment;
importandroid.util.Log;
publicclassCrashHandlerimplementsUncaughtExceptionHandler{
privatestaticCrashHandlerinstance;
publicstaticCrashHandlergetInstance(){
if(instance==null){
instance=newCrashHandler();
}
returninstance;
}
publicvoidinit(Contextctx){
Thread.setDefaultUncaughtExceptionHandler(this);
}
/**
*核心方法,当程序crash会回调此方法,Throwable中存放这错误日志
*/
@Override
publicvoiduncaughtException(Threadarg0,Throwablearg1){
StringlogPath;
if(Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)){
//logPath=Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator+File.separator+"log";
logPath="/sdcard/Download/";
Filefile=newFile(logPath);
if(!file.exists()){
file.mkdirs();
}
try{
FileWriterfw=newFileWriter(logPath+File.separator+"errorlog.log",true);
fw.write(newDate()+"\n");
//错误信息
//这里还可以加上当前的系统版本,手机型号,MAC地址等等信息
StackTraceElement[]stackTrace=arg1.getStackTrace();
fw.write(arg1.getMessage()+"\n");
for(inti=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(IOExceptione){
Log.e("crashhandler","loadfilefailed...",e.getCause());
}
}
arg1.printStackTrace();
android.os.Process.killProcess(android.os.Process.myPid());
}
}
如何在Android程序中使用我们自定义的程序崩溃日志呢?只需要在程序入口MainActivity类中的onCreate方法中加入如下代码即可://全局异常捕获
CrashHandlercrashHandler=CrashHandler.getInstance();
crashHandler.init(getApplicationContext());
至于上传生成的errorlog.log日志文件如何上传,就和普通的Java文件上传是一样的,等再onCreate方法中生成之后,就调用上传文件的方法即可,这里不再赘述。
来源网站:太平洋学习网,转载请注明出处:/a/android/1015.html
如果觉得《java 崩溃日志_Android收集程序崩溃日志的方法》对你有帮助,请点赞、收藏,并留下你的观点哦!