示例#1
0
            /// <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());
            }
示例#2
0
        /**
         * 保存错误信息到文件中
         *
         * @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);
        }
示例#3
0
        /**
         * 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();
            }
        }