public void UncaughtException(Thread thread, Throwable ex) { //1.��ȡӦ�ó���汾��Ϣ string version = string.Empty; PackageManager pm = context.PackageManager; try { PackageInfo info = pm.GetPackageInfo(context.PackageName, 0); string versionName = info.VersionName; version += ("����汾��Ϊ:" + versionName); string time = DateTime.Now.ToString("yyyyMMdd"); string fileName = "crash-" + time + "-" + DateTime.Now.ToString("fff") + ".log"; if (Android.OS.Environment.ExternalStorageState.Equals(Android.OS.Environment.MediaMounted)) { var path = "/sdcard/crash/"; using (StreamWriter streamWriter = System.IO.File.AppendText(path + fileName)) { streamWriter.WriteLine("{0:yyyy-MM-dd HH:mm:ss} {1}", DateTime.Now, version); } } } catch (System.Exception e) { } Toast.MakeText(context, "�ܱ�Ǹ,��������쳣,�����˳�.", ToastLength.Long).Show(); //�����Ӧ�ó�����ɱ Android.OS.Process.KillProcess(Android.OS.Process.MyPid()); }
public static void LogVerbose(String tag, String message, Throwable cause) { //noinspection PointlessBooleanExpression,ConstantConditions if ( Config.Debug && Log.IsLoggable(tag, LogPriority.Verbose)) { if (cause != null) Log.Verbose(tag, message, cause); } }
public void UncaughtException (Java.Lang.Thread thread, Throwable ex) { Mint.XamarinException (ex.ToJavaException (), false, null); LastBreath (); UncaughtExceptionHandled (null, ex); }
/** * Prints a message at DEBUG priority. */ public static void Debug (string tag, string msg, Throwable tr) { WriteLine (LogPriority.Debug, tag, msg, tr); }
/** * Instructs the LogNode to print the log data provided. Other LogNodes can * be chained to the end of the LogNode as desired. */ public static void WriteLine (LogPriority priority, string tag, string msg, Throwable tr) { if (mLogNode != null) mLogNode.WriteLine (priority, tag, msg, tr); }
/** * Prints a message at ASSERT priority. */ public static void Wtf (string tag, string msg, Throwable tr) { WriteLine (LogPriority.Assert, tag, msg, tr); }
/** * Prints a message at WARN priority. */ public static void Warn (string tag, Throwable tr) { Warn (tag, null, tr); }
/** * Prints a message at INFO priority. */ public static void Info (string tag, string msg, Throwable tr) { WriteLine (LogPriority.Info, tag, msg, tr); }
public static void e(string tag, string str, Throwable t) { if (EnableLog) Log.Error(tag, t, str); }
public void UncaughtException(Thread thread, Throwable ex) { Toast.MakeText(mContext, "�ܱ�Ǹ,��������쳣,�����˳�.", ToastLength.Long).Show(); if (!handleException(ex) && mDefaultHandler != null) { //����û�û�д�������ϵͳĬ�ϵ��쳣������������ mDefaultHandler.UncaughtException(thread, ex); } else { try { Thread.Sleep(3000); } catch (InterruptedException e) { Log.Error(TAG, "error : ", e); //�˳����� Android.OS.Process.KillProcess(Android.OS.Process.MyPid()); //System.exit(1); } } }
public void UncaughtException(Java.Lang.Thread t, Java.Lang.Throwable e) { @interface?.UncaughtException(t, e); action(t, e); }
public /* override */ virtual void OnTextureSourceLoadExeption(Texture pTexture, ITextureSource pTextureSource, Throwable pThrowable) { Debug.E("Exception loading TextureSource. Texture: " + pTexture.ToString() + " TextureSource: " + pTextureSource, pThrowable); }
public /* override */ virtual void OnTextureSourceLoadExeption(Texture pTexture, ITextureSource pTextureSource, Throwable pThrowable) { }
public void UncaughtException(Java.Lang.Thread unusedThread, Java.Lang.Throwable e) { this.e = e; activity.RunOnUiThread(Run); }
public static void w(string tag, Throwable t, string msg, params object[] args) { Log.Warn(tag, string.Format(msg, args)); }
public static System.Exception ToException (Throwable e) { if (e == null) throw new ArgumentNullException ("e"); return e; }
//void Thread.IUncaughtExceptionHandler.UncaughtException(Thread thread, Throwable ex) //{ // Toast.MakeText(mContext, "�ܱ�Ǹ,��������쳣,�����˳�.", ToastLength.Long).Show(); // if (!handleException(ex) && mDefaultHandler != null) // { // //����û�û�д�������ϵͳĬ�ϵ��쳣������������ // mDefaultHandler.UncaughtException(thread, ex); // } // else // { // try // { // Thread.Sleep(3000); // } // catch (InterruptedException e) // { // Log.Error(TAG, "error : ", e); // //�˳����� // Android.OS.Process.KillProcess(Android.OS.Process.MyPid()); // //System.exit(1); // } //} /** * �Զ��������,�ռ�������Ϣ ���ʹ���Ȳ������ڴ����. * * @param ex * @return true:��������˸��쳣��Ϣ;����false. */ private bool handleException(Throwable ex) { if (ex == null) { return false; } new Thread(() => { Looper.Prepare(); Toast.MakeText(mContext, "�ܱ�Ǹ,��������쳣,�����˳�.", ToastLength.Long).Show(); Looper.Loop(); }).Start(); //ʹ��Toast����ʾ�쳣��Ϣ //new Thread() { // @Override // public void run() { // Looper.prepare(); // Toast.makeText(mContext, "�ܱ�Ǹ,��������쳣,�����˳�.", Toast.LENGTH_LONG).show(); // Looper.loop(); // } //}.start(); //�ռ��豸������Ϣ collectDeviceInfo(mContext); ////������־�ļ� //saveCrashInfo2File(ex); return true; }
public void UncaughtException(Thread thread, Throwable ex) { Insights.Report(ex); }
///** // * ���������Ϣ���ļ��� // * // * @param ex // * @return �����ļ�����,���ڽ��ļ����͵������� // */ private string saveCrashInfo2File(Throwable ex) { StringBuffer sb = new StringBuffer(); foreach (var info in infos) { string key = info.Key; string value = info.Value; sb.Append(key + "=" + value + "\n"); } //for (Map.Entry<String, String> entry : infos.entrySet()) { // String key = entry.getKey(); // String value = entry.getValue(); // sb.append(key + "=" + value + "\n"); //} //Writer writer = new StringWriter(); //PrintWriter printWriter = new PrintWriter(writer); //ex.printStackTrace(printWriter); //Throwable cause = ex.getCause(); //while (cause != null) { // cause.printStackTrace(printWriter); // cause = cause.getCause(); //} //printWriter.close(); //String result = writer.toString(); //sb.append(result); //try { // long timestamp = System.currentTimeMillis(); // String time = formatter.format(new Date()); // String fileName = "crash-" + time + "-" + timestamp + ".log"; // if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { // String path = "/sdcard/crash/"; // File dir = new File(path); // if (!dir.exists()) { // dir.mkdirs(); // } // FileOutputStream fos = new FileOutputStream(path + fileName); // fos.write(sb.toString().getBytes()); // fos.close(); // } // return fileName; //} catch (Exception e) { // Log.e(TAG, "an error occured while writing file...", e); //} return null; }
/** * Prints a message at WARN priority. */ public static void Warn (string tag, string msg, Throwable tr) { WriteLine (LogPriority.Warn, tag, msg, tr); }
public static void LogDebug( String tag, String message, Throwable cause) { if (Log.IsLoggable(tag, LogPriority.Debug)) { if (cause != null) Log.Debug(tag, message, cause); } }
/** * Prints a message at ERROR priority. */ public static void Error (string tag, string msg, Throwable tr) { WriteLine (LogPriority.Error, tag, msg, tr); }
public static void LogError( String tag, String message, Throwable cause) { Log.Error(tag, message, cause); }
/** * Prints a message at ASSERT priority. */ public static void Wtf (string tag, Throwable tr) { Wtf (tag, null, tr); }
public static void LogInfo( String tag, String message, Throwable cause) { Log.Info(tag, message, cause); }
/** * Prints a message at VERBOSE priority. */ public static void Verbose (string tag, string msg, Throwable tr) { WriteLine (LogPriority.Verbose, tag, msg, tr); }
public static void LogWarn( String tag, String message, Throwable cause) { Log.Warn(tag, message, cause); }
static void OnUncaughtExceptionHandled(object sender, Throwable ex) { OnUnhandledExceptionHandled(ex, "Throwable"); }
protected Exception(string p0, Throwable p1, bool p2, bool p3) { throw new NotSupportedException("The Java.Lang.Exception(string, Throwable, bool, bool) constructor was erroneously bound. It does not exist."); }
protected RuntimeException(string p0, Throwable p1, bool p2, bool p3) { throw new NotSupportedException ("The Java.Lang.RuntimeException(string, Throwable, bool, bool) constructor was erroneously bound. It does not exist."); }
public static void v(string tag, Throwable t, string msg, params object[] args) { if (LOGGING_ENABLED) Log.Verbose(tag, string.Format(msg, args)); }