失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java 崩溃日志_Android收集程序崩溃日志的方法

java 崩溃日志_Android收集程序崩溃日志的方法

时间:2018-11-15 11:29:34

相关推荐

java 崩溃日志_Android收集程序崩溃日志的方法

安卓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收集程序崩溃日志的方法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。