Electron 项目(三):本地日志(electron-log)

  1. 安装 electron-log:
    1
    npm install electron-log

  2. 防止控制台中文乱码:
    1
    2
    3
    4
    5
    {
      "scripts": {
        "start": "chcp 65001 && electron-forge start"
      }
    }
  3. 引入依赖:
    1
    import log from 'electron-log';
  4. 日志:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
      // 日志文件等级,默认值:false
      log.transports.file.level = 'debug';
      // 日志控制台等级,默认值:false
      log.transports.console.level = 'debug';
      // 日志文件名,默认:main.log
      log.transports.file.fileName = 'main.log';
      // 日志格式,默认:[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}]{scope} {text}
      log.transports.file.format = '[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}]{scope} {text}';
      // 日志大小,默认:1048576(1M),达到最大上限后,备份文件并重命名为:main.old.log,有且仅有一个备份文件
      log.transports.file.maxSize = 1048576;
      // 日志文件位置:C:\Users\%USERPROFILE%\AppData\Roaming\Electron\logs
      // 完整的日志路径:log.transports.file.file,优先级高于 appName、fileName

      // 日志范围
      const userLog = log.scope('xxw');

      log.error('Hello, log error');
      log.warn('Hello, log warn');
      log.info('Hello, log info');
      log.verbose('Hello, log verbose');
      log.debug('Hello, log debug');
      log.silly('Hello, log silly');
      log.info('中文');

      userLog.info('指定范围的日志');
  5. 多实例日志:

    1
    2
    // 多实例日志,log2 同 log
    const log2 = log.create('log2');