logger.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. const log = require('electron-log');
  2. const { app } = require('electron');
  3. const path = require('path');
  4. const fs = require('fs');
  5. class Logger {
  6. constructor() {
  7. this.initializeLogger();
  8. }
  9. initializeLogger() {
  10. log.transports.file.resolvePath = () => {
  11. const logsPath = path.join(app.getPath('userData'), 'logs');
  12. if (!fs.existsSync(logsPath)) {
  13. fs.mkdirSync(logsPath, { recursive: true });
  14. }
  15. return path.join(logsPath, 'app.log');
  16. };
  17. if (process.env.NODE_ENV === 'development') {
  18. log.transports.console.level = 'info';
  19. } else {
  20. log.transports.console.level = false;
  21. }
  22. log.transports.file.level = 'info';
  23. log.transports.file.maxSize = 10 * 1024 * 1024;
  24. log.transports.file.format = '[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}] {text}';
  25. this.logger = log;
  26. this.info('Logger initialized');
  27. }
  28. info(message, ...args) {
  29. this.logger.info(message, ...args);
  30. }
  31. warn(message, ...args) {
  32. this.logger.warn(message, ...args);
  33. }
  34. error(message, ...args) {
  35. this.logger.error(message, ...args);
  36. }
  37. debug(message, ...args) {
  38. this.logger.debug(message, ...args);
  39. }
  40. }
  41. module.exports = Logger;