Logger.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. class Logger{
  2. constructor(e) {
  3. E(this, "module", "log");
  4. E(this, "level", 3);
  5. this.module = e
  6. }
  7. static setLevel(e) {
  8. this.level = e
  9. }
  10. setLevel(e) {
  11. this.level = e
  12. }
  13. atleast(e) {
  14. return e >= this.level && e >= Ce.level
  15. }
  16. print(e, t, ...r) {
  17. if (this.atleast(t)) {
  18. const n = e == "debug" ? "info" : e
  19. , o = this.prefix(e);
  20. console[n].call(null, o, ...r)
  21. }
  22. if (e !== "debug" && e !== "info") {
  23. const n = r.map(o=>{
  24. if (o instanceof Object)
  25. try {
  26. return JSON.stringify(o)
  27. } catch {
  28. return o
  29. }
  30. else
  31. return o
  32. }
  33. ).join(",");
  34. reporter.report("log", {
  35. message: n,
  36. level: e,
  37. module: this.module
  38. })
  39. }
  40. }
  41. debug(...e) {
  42. return this.print("debug", 1, ...e)
  43. }
  44. info(...e) {
  45. return this.print("info", 2, ...e)
  46. }
  47. infoAndReportLog(e, ...t) {
  48. const {reportOptions: r} = e;
  49. delete e.reportOptions,
  50. reporter.report("log", e, r),
  51. t.length || (t = [e.message]),
  52. this.debug(...t)
  53. }
  54. infoAndReportMeasurement(e, ...t) {
  55. var n;
  56. const {reportOptions: r} = e;
  57. if (e.startTime) {
  58. const o = Date.now();
  59. e.value === void 0 && (e.endTime = o),
  60. e.value === void 0 && (e.value = o - e.startTime)
  61. }
  62. if (e.error ? e.code = ((n = e.error) == null ? void 0 : n.code) || Codes$1.Internal : e.code = Codes$1.Success,
  63. reporter.report("measurement", e, r),
  64. t.length || (t = [e]),
  65. e.level === 4 || e.error) {
  66. this.error(...t);
  67. return
  68. }
  69. this.warn(...t)
  70. }
  71. warn(...e) {
  72. return this.print("warn", 3, ...e)
  73. }
  74. error(...e) {
  75. return this.print("error", 4, ...e)
  76. }
  77. prefix(e) {
  78. return `[${this.module}][${e}] ${getFormattedDate(new Date)}:`
  79. }
  80. }
  81. ;