production-taskbar-client / src / main / utils / log.js
log.js
Raw
import log from "electron-log";
import { sendAdmin } from "./nodemailer";

const isDev = process.env.NODE_ENV === "development";

export default function initLogger() {
  log.transports.console.format =
    "{h}:{i}:{s}.{ms} [{level}] {processType} > {text}";
  log.transports.file.format =
    "[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}] {processType} > {text}";

  // log main.js exceptions into [userFolder]\logs folder and send as email to admin
  log.errorHandler.startCatching({
    showDialog: false,
    onError(error, versions) {
      log.variables.appVersion = versions.app;
      log.transports.file.format =
        "[{h}:{i}:{s}.{ms}] [ERROR] {appVersion} -> {text}";

      if (!isDev) {
        sendAdmin({ error, versions });
      }
    },
  });

  log.initialize({ preload: true });
}