/// <summary> /// 保存错误信息到文件中 /// </summary> /// <param name="ex"></param> private void SaveCrashInfo2File(Throwable ex) { var sb = new System.Text.StringBuilder(); foreach (var(key, value) in infos) { sb.AppendLine($"{key} = {value}"); } using var writer = new StringWriter(); using var printWriter = new PrintWriter(writer); ex.PrintStackTrace(printWriter); var cause = ex.Cause; while (cause != null) { cause.PrintStackTrace(printWriter); cause = cause.Cause; } var result = writer.ToString(); sb.AppendLine(result); LoggerFactory.Current.Create().LogError(sb.ToString()); MobclickAgent.ReportError(_context, sb.ToString()); }
/** * 保存错误信息到文件中 * * @param ex * @return 返回文件名称 */ private string saveCrashInfo2File(Throwable ex) { StringBuffer sb = new StringBuffer(); sb.Append("---------------------sta--------------------------"); foreach (var entry in infos) { string key = entry.Key; string value = entry.Value; sb.Append(key + "=" + value + "\n"); } Writer writer = new StringWriter(); PrintWriter printWriter = new PrintWriter(writer); ex.PrintStackTrace(printWriter); Throwable cause = ex.Cause; while (cause != null) { cause.PrintStackTrace(printWriter); cause = cause.Cause; } printWriter.Close(); string result = writer.ToString(); sb.Append(result); sb.Append("--------------------end---------------------------"); LogUtils.e(sb.ToString()); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); string fileName = format.Format(new Date()) + ".log"; File file = new File(FileUtils.createRootPath(mContext) + "/log/" + fileName); FileUtils.createFile(file); FileUtils.writeFile(file.AbsolutePath, sb.ToString()); // uploadCrashMessage(sb.ToString()); return(null); }
/** * Write. * * @param level the level * @param tag the tag * @param msg the msg * @param error the error */ private static void write(string level, string tag, string msg, Throwable error) { if (!initialized) { init(); } if (logStream == null || logStream.CheckError()) { initialized = false; return; } Date now = new Date(); logStream.Printf(LOG_ENTRY_FORMAT, now, now, level, tag, TAG_LEFT_BRICK + TAG_RIGHT_BRICK + msg); logStream.Println(); if (error != null) { error.PrintStackTrace(logStream); logStream.Println(); } }