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 使用多个日志目录,它不会返回所有文件。