electron-log 文件传输

1,628 阅读1分钟

File transport(文件传输)

file transport将日志消息写入文件。

Options

archiveLog {(oldLogFile: LogFile) => void}

Default:

function archiveLog(file) {
 file = file.toString();
 const info = path.parse(file);

 try {
   fs.renameSync(file, path.join(info.dir, info.name + '.old' + info.ext));
 } catch (e) {
   console.warn('Could not rotate log', e);
 }
}

日志轮换时调用的回调。如果您需要自定义日志轮换行为,您可以覆盖它。此功能应同步删除旧文件。

fileName {string}

默认为: 'main.log''renderer.log' 或者 'worker.log'取决于进程类型

format {string | (message: LogMessage) => void}

默认为: '[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}] {text}'

level {LogLevel | false}

默认为: 'silly'

默认值:1048576(1mb)

maxSize {number}

日志文件的最大大小(以字节为单位)。当日志文件超过此限制时,它将被移动到 {file name}.old.log 文件中。您可以将其设置为 0 以禁用日志轮换。

resolvePath {(variables: PathVariables, message?: LogMessage) => string}

默认为:

function resolvePath(variables) {
  return path.join(variables.libraryDefaultDir, variables.fileName);
}

允许为日志文件设置自定义路径。如有必要,将自动创建目录层次结构。

这只是一个选项,所以不建议直接调用它。

variables 参数只是 PathVariables 类型的对象,其中包含几个预定义的值。随意选择最适合您的应用程序。

Electron 具有获取日志路径的内置方法app.getPath('logs')。但在当前版本中似乎不稳定。稍后可能会更改某些平台上的默认路径。但是,如果您想使用默认的 Electron 路径,只需使用以下解析器:

log.transports.file.resolvePath = (variables) => {
  return path.join(variables.electronDefaultDir, variables.fileName);
}

readAllLogs() => Array<{ path: string, lines: string[] }>

读取所有日志文件的内容。

请注意,如果您通过覆盖 resolvePath 使用多个日志目录,它不会返回所有文件。