crashReporter
crashReporter
将崩溃报告提交给远程服务器。
Process: Main, Renderer
以下是自动向远程服务器提交崩溃报告的示例:
const {crashReporter} = require('electron')
crashReporter.start{
productName: 'YourName',
companyName: 'YourCompany',
submitURL: 'https://your-domain.com/url-to-submit',
uploadToServer: true
})
要设置服务器来接受和处理崩溃报告,您可以使用以下项目:
崩溃报告本地保存在特定于应用程序的临时目录文件夹中。对于其中productName
之一YourName
,崩溃报告将存储在YourName Crashes
临时目录内命名的文件夹中。您可以app.setPath('temp', '/my/custom/temp')
在启动崩溃记者之前通过调用API 来为您的应用定制此临时目录位置。
Methods
crashReporter
模块具有以下方法:
crashReporter.start(options)
options
目的
您需要在使用任何其他crashReporter
API以及要从中收集崩溃报告的每个进程(主/渲染器)之前调用此方法。crashReporter.start
从不同的进程调用时,可以传递不同的选项。
注意
通过child_process
模块创建的子进程无法访问Electron模块。因此,要收集来自它们的崩溃报告,请process.crashReporter.start
改为使用。通过与上面相同的选项以及另外一个crashesDirectory
应该指向临时存储崩溃报告的目录。您可以通过调用process.crash()
以使子进程崩溃来进行测试。
注意:
要从Windows中的子进程收集崩溃报告,您还需要添加此额外的代码。这将启动将监视和发送崩溃报告的过程。替换submitURL
,productName
并crashesDirectory
用适当的值。
注意:
如果您需要extra
在第一次通话后发送更多/更新的参数,则start
可以调用setExtraParameter
macOS或在Linux和Windows上start
再次调用新的/更新的extra
参数。
const args = [
`--reporter-url=${submitURL}`,
`--application-name=${productName}`,
`--crashes-directory=${crashesDirectory}`
]
const env = {
ELECTRON_INTERNAL_CRASH_SERVICE: 1
}
spawn(process.execPath, args, {
env: env,
detached: true
})
注意:
在macOS上,Electron使用新的crashpad
客户端进行崩溃收集和报告。如果您希望启用崩溃报告,则无论您要从哪个进程收集崩溃,都需要crashpad
使用主进程进行初始化crashReporter.start
。一旦以这种方式初始化,crashpad
处理程序收集所有进程的崩溃。你仍然需要调用crashReporter.start
从渲染器或子进程,否则崩溃从中会得到不报companyName
,productName
或任何extra
信息。
crashReporter.getLastCrashReport()
Returns CrashReport
:
返回上次崩溃报告的日期和ID。如果没有发送崩溃报告或崩溃报告器尚未启动,null
则返回。
crashReporter.getUploadedReports()
返回CrashReport[]
:
返回所有上传的崩溃报告。每个报告都包含日期和上传的ID。
crashReporter.getUploadToServer() Linux macOS
返回Boolean
- 是否应将报告提交给服务器。通过该start
方法设置或setUploadToServer
。
注意:
此API只能从主进程中调用。
crashReporter.setUploadToServer(uploadToServer) Linux macOS
uploadToServer
布尔值macOS
- 是否应将报告提交给服务器
这通常由用户偏好来控制。如果调用之前start
调用没有效果。
注意:
此API只能从主进程中调用。
crashReporter.setExtraParameter(key, value) macOS
key
字符串 - 参数键的长度必须少于64个字符。
设置与崩溃报告一起发送的额外参数。除了在调用extra
时通过选项设置的任何值以外,还会发送此处指定的值start
。此API仅在macOS上可用,如果您需要在第一次打电话给start
您之后在Linux和Windows上添加/更新额外参数,可以start
使用更新的extra
选项再次调用。
Crash Report Payload
撞机记者将发送以下数据submitURL
为multipart/form-data
POST
:
ver
字符串 - Electron的版本。