electron/docs/api/crash-reporter.md

79 lines
2.7 KiB
Markdown
Raw Normal View History

2015-08-27 15:11:51 +00:00
# crashReporter
2013-08-14 22:43:35 +00:00
2016-04-21 22:39:12 +00:00
> Submit crash reports to a remote server.
2015-08-25 12:01:57 +00:00
2015-08-25 12:16:20 +00:00
The following is an example of automatically submitting a crash report to a
remote server:
2013-08-14 22:43:35 +00:00
```javascript
const {crashReporter} = require('electron')
2015-08-28 17:50:30 +00:00
2013-11-14 05:39:44 +00:00
crashReporter.start({
productName: 'YourName',
companyName: 'YourCompany',
2015-11-13 08:03:40 +00:00
submitURL: 'https://your-domain.com/url-to-submit',
2013-11-14 05:39:44 +00:00
autoSubmit: true
})
2013-08-14 22:43:35 +00:00
```
For setting up a server to accept and process crash reports, you can use
following projects:
* [socorro](https://github.com/mozilla/socorro)
2016-05-06 17:09:24 +00:00
* [mini-breakpad-server](https://github.com/electron/mini-breakpad-server)
2015-08-25 12:01:57 +00:00
## Methods
The `crash-reporter` module has the following methods:
### `crashReporter.start(options)`
* `options` Object
* `companyName` String
* `submitURL` String - URL that crash reports will be sent to as POST.
2016-09-08 18:52:21 +00:00
* `productName` String (optional) - Defaults to `app.getName()`.
* `autoSubmit` Boolean - Send the crash report without user interaction.
Default is `true`.
* `ignoreSystemCrashHandler` Boolean - Default is `false`.
* `extra` Object - An object you can define that will be sent along with the
report. Only string properties are sent correctly, Nested objects are not
supported.
2015-08-27 15:11:51 +00:00
You are required to call this method before using other `crashReporter`
2015-08-25 12:16:20 +00:00
APIs.
2015-06-05 11:05:55 +00:00
2016-06-18 13:26:26 +00:00
**Note:** On macOS, Electron uses a new `crashpad` client, which is different
from `breakpad` on Windows and Linux. To enable the crash collection feature,
2015-08-25 12:16:20 +00:00
you are required to call the `crashReporter.start` API to initialize `crashpad`
in the main process and in each renderer process from which you wish to collect
crash reports.
2015-05-30 02:03:59 +00:00
2015-08-25 12:01:57 +00:00
### `crashReporter.getLastCrashReport()`
2014-11-11 12:20:36 +00:00
Returns the date and ID of the last crash report. If no crash reports have been
sent or the crash reporter has not been started, `null` is returned.
2014-11-11 12:20:36 +00:00
2015-08-25 12:01:57 +00:00
### `crashReporter.getUploadedReports()`
2015-06-05 11:05:55 +00:00
2015-08-26 23:28:44 +00:00
Returns all uploaded crash reports. Each report contains the date and uploaded
ID.
2015-06-05 11:05:55 +00:00
2015-08-25 12:01:57 +00:00
## crash-reporter Payload
The crash reporter will send the following data to the `submitURL` as
a `multipart/form-data` `POST`:
2015-08-25 12:18:02 +00:00
* `ver` String - The version of Electron.
* `platform` String - e.g. 'win32'.
* `process_type` String - e.g. 'renderer'.
* `guid` String - e.g. '5e1286fc-da97-479e-918b-6bfb0c3d1c72'
2015-08-25 12:18:02 +00:00
* `_version` String - The version in `package.json`.
2015-08-25 12:16:20 +00:00
* `_productName` String - The product name in the `crashReporter` `options`
2015-08-25 12:18:02 +00:00
object.
* `prod` String - Name of the underlying product. In this case Electron.
2015-08-25 12:16:20 +00:00
* `_companyName` String - The company name in the `crashReporter` `options`
2015-08-25 12:18:02 +00:00
object.
* `upload_file_minidump` File - The crash report in the format of `minidump`.
2015-08-25 12:18:02 +00:00
* All level one properties of the `extra` object in the `crashReporter`.
2015-08-25 12:16:20 +00:00
`options` object