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 目的

您需要在使用任何其他crashReporterAPI以及要从中收集崩溃报告的每个进程(主/渲染器)之前调用此方法。crashReporter.start从不同的进程调用时,可以传递不同的选项。

注意通过child_process模块创建的子进程无法访问Electron模块。因此,要收集来自它们的崩溃报告,请process.crashReporter.start改为使用。通过与上面相同的选项以及另外一个crashesDirectory应该指向临时存储崩溃报告的目录。您可以通过调用process.crash()以使子进程崩溃来进行测试。

注意:要从Windows中的子进程收集崩溃报告,您还需要添加此额外的代码。这将启动将监视和发送崩溃报告的过程。替换submitURLproductNamecrashesDirectory用适当的值。

注意:如果您需要extra在第一次通话后发送更多/更新的参数,则start可以调用setExtraParametermacOS或在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从渲染器或子进程,否则崩溃从中会得到不报companyNameproductName或任何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

撞机记者将发送以下数据submitURLmultipart/form-data POST

  • ver 字符串 - Electron的版本。