logReport.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import devCache from "./devCache";
  2. import devOptions from "./devOptions";
  3. import jsonCompress from "./jsonCompress";
  4. /**
  5. * ! 运行日志提交工具
  6. */
  7. /**
  8. * 日志上报
  9. */
  10. function logReport(msg) {
  11. try {
  12. if (!msg) return false;
  13. let options = devOptions.getOptions()
  14. if (!options.status) {
  15. console.error("日志上报失败!dev工具未启用 msg:" + msg);
  16. return;
  17. }
  18. if (!options.logs.status) {
  19. console.error("日志上报失败!dev logs未启用 msg:" + msg);
  20. return;
  21. }
  22. try {
  23. let pages = getCurrentPages()
  24. if (pages[pages.length - 1].route == options.devRoute) {
  25. // 不记录调试工具报出的日志
  26. return false;
  27. }
  28. } catch (error) { }
  29. if (typeof msg == "object") {
  30. try {
  31. msg = JSON.stringify(msg)
  32. } catch (error) {
  33. msg = "logReport:error"
  34. }
  35. }
  36. let log = {
  37. t: new Date().getTime(),
  38. m: "",
  39. }
  40. let logSize = jsonCompress.calculateStringByteSize(log)
  41. msg = String(msg);
  42. msg = jsonCompress.compressObject(msg, options.logs.cache.rowSize - logSize)
  43. log.m = msg;
  44. let logs = devCache.get("logReport");
  45. if (!logs) logs = [];
  46. logs.unshift(log);
  47. logs = jsonCompress.compressArray(logs, "end", options.logs.cache.size)
  48. devCache.set("logReport", logs)
  49. } catch (error) {
  50. console.log("logReport error", error);
  51. }
  52. }
  53. export default logReport;