Home Reference Source

cables_dev/cables_electron/src/utils/logger.js

  1. import { utilProvider, SharedLogger } from "cables-shared-api";
  2. import log from "electron-log/main.js";
  3. class Logger extends SharedLogger
  4. {
  5. constructor(provider)
  6. {
  7. super(provider);
  8. const logFormat = "[electron-{processType}] {d}.{m}.{y} {h}:{i}:{s} {text}";
  9. log.transports.file.maxSize = 20 * 1024 * 1024;
  10. log.initialize();
  11. log.transports.console.format = logFormat;
  12. log.transports.file.format = logFormat;
  13. log.transports.ipc.level = "debug";
  14. this.loadStart = performance.now();
  15. this.startUpLog = [];
  16. }
  17. debug(...args)
  18. {
  19. const level = "debug";
  20. if (this._logLevelFiltered(level)) return;
  21. log.debug("[" + this._initiator + "]", "DEBUG", args.join(" "));
  22. }
  23. verbose(...args)
  24. {
  25. const level = "verbose";
  26. if (this._logLevelFiltered(level)) return;
  27. log.verbose("[" + this._initiator + "]", args.join(" "));
  28. }
  29. info(...args)
  30. {
  31. const level = "info";
  32. if (this._logLevelFiltered(level)) return;
  33. log.info("[" + this._initiator + "]", args.join(" "));
  34. }
  35. warn(...args)
  36. {
  37. const level = "warn";
  38. if (this._logLevelFiltered(level)) return;
  39. log.warn("[" + this._initiator + "]", "WARN", args.join(" "));
  40. }
  41. error(...args)
  42. {
  43. const level = "error";
  44. if (this._logLevelFiltered(level)) return;
  45. log.error("[" + this._initiator + "]", "ERROR", args.join(" "), this._getContext(args));
  46. }
  47. endTime(...args)
  48. {
  49. super.endTime(...args);
  50. }
  51. startTime(...args)
  52. {
  53. super.startTime(...args);
  54. }
  55. event(...args)
  56. {
  57. // ignore events in electron
  58. }
  59. logStartup(title)
  60. {
  61. const time = Math.round((performance.now() - this.loadStart) / 1000 * 100) / 100;
  62. this.startUpLog.push({
  63. "title": title,
  64. "time": time
  65. });
  66. this.debug(title + " (" + time + "s)");
  67. }
  68. }
  69. export default new Logger(utilProvider);