Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
exceptionless
Advanced tools
The definition of the word exceptionless is: to be without exception. Exceptionless.js provides real-time error reporting for your JavaScript applications in the browser or in Node.js. It organizes the gathered information into simple actionable data that will help your app become exceptionless!
<script src="https://cdn.jsdelivr.net/npm/exceptionless@v1.6.4/dist/exceptionless.min.js"></script>
<script>
var client = exceptionless.ExceptionlessClient.default;
client.config.apiKey = 'API_KEY_HERE';
try {
throw new Error('test');
} catch (error) {
client.submitException(error);
}
</script>
var client = require('exceptionless').ExceptionlessClient.default;
client.config.apiKey = 'API_KEY_HERE';
try {
throw new Error('test');
} catch (error) {
client.submitException(error);
}
You can install Exceptionless.js either in your browser application using Bower or a script
tag, or you can use the Node Package Manager (npm) to install the Node.js package.
Use one of the following methods to install Exceptionless.js into your browser application:
CDN:
Add the following script to your page:
<script src="https://cdn.jsdelivr.net/npm/exceptionless@v1.6.4/dist/exceptionless.min.js"></script>
Bower:
bower install exceptionless
.<script src="bower_components/exceptionless/dist/exceptionless.min.js"></script>
In either case, we recommend placing the script
tag at the very beginning of your page.
Use this method to install Exceptionless.js into your Node application:
npm install exceptionless --save
.var client = require('exceptionless').ExceptionlessClient.default;
In order to use Exceptionless.js, the apiKey
setting has to be configured first.
You can configure the ExceptionlessClient
class using one of the following ways:
You can configure the apiKey
as part of the script tag. This will be applied to all new instances of the ExceptionlessClient
class:
<script src="bower_components/exceptionless/dist/exceptionless.min.js?apiKey=API_KEY_HERE"></script>
You can set the apiKey
on the default ExceptionlessClient
instance:
exceptionless.ExceptionlessClient.default.config.apiKey = 'API_KEY_HERE';
You can create a new instance of the ExceptionlessClient
class and specify the apiKey
, serverUrl
or configuration object:
var client = new exceptionless.ExceptionlessClient('API_KEY_HERE');
// or with an api key and server url
var client = new exceptionless.ExceptionlessClient('API_KEY_HERE', 'http://localhost:5000');
// or with a configuration object
var client = new exceptionless.ExceptionlessClient({
apiKey: 'API_KEY_HERE',
serverUrl: 'http://localhost:5000',
submissionBatchSize: 100
});
You can set the apiKey
on the default ExceptionlessClient
instance:
var client = require('exceptionless').ExceptionlessClient.default;
client.config.apiKey = 'API_KEY_HERE';
You can create a new instance of the ExceptionlessClient
class and specify the apiKey
, serverUrl
or configuration object:
var exceptionless = require('exceptionless');
var client = new exceptionless.ExceptionlessClient('API_KEY_HERE');
// or with an api key and server url
var client = new exceptionless.ExceptionlessClient('API_KEY_HERE', 'http://localhost:5000');
// or with a configuration object
var client = new exceptionless.ExceptionlessClient({
apiKey: 'API_KEY_HERE',
serverUrl: 'http://localhost:5000',
submissionBatchSize: 100
});
Once configured, Exceptionless.js will automatically submit any unhandled exceptions that happen in your application to the Exceptionless server. The following sections will show you how to manually submit different event types as well as customize the data that is sent:
You may also want to submit log messages, feature usage data or other kinds of events. You can do this very easily with the fluent API:
// Browser
var client = exceptionless.ExceptionlessClient.default;
// Node.js
// var client = require('exceptionless').ExceptionlessClient.default;
client.submitLog('Logging made easy');
// You can also specify the log source and log level.
// We recommend specifying one of the following log levels: Trace, Debug, Info, Warn, Error
client.submitLog('app.logger', 'This is so easy', 'Info');
client.createLog('app.logger', 'This is so easy', 'Info').addTags('Exceptionless').submit();
// Submit feature usages
client.submitFeatureUsage('MyFeature');
client.createFeatureUsage('MyFeature').addTags('Exceptionless').submit();
// Submit a 404
client.submitNotFound('/somepage');
client.createNotFound('/somepage').addTags('Exceptionless').submit();
// Submit a custom event type
client.submitEvent({ message = 'Low Fuel', type = 'racecar', source = 'Fuel System' });
In addition to automatically sending all unhandled exceptions, you may want to manually send exceptions to the service. You can do so by using code like this:
// Browser
var client = exceptionless.ExceptionlessClient.default;
// Node.js
// var client = require('exceptionless').ExceptionlessClient.default;
try {
throw new Error('test');
} catch (error) {
client.submitException(error);
}
You can easily include additional information in your error reports using the fluent event builder API.
// Browser
var client = exceptionless.ExceptionlessClient.default;
// Node.js
// var client = require('exceptionless').ExceptionlessClient.default;
try {
throw new Error('Unable to create order from quote.');
} catch (error) {
client.createException(error)
// Set the reference id of the event so we can search for it later (reference:id).
// This will automatically be populated if you call client.config.useReferenceIds();
.setReferenceId('random guid')
// Add the order object (the ability to exclude specific fields will be coming in a future version).
.setProperty("Order", order)
// Set the quote number.
.setProperty("Quote", 123)
// Add an order tag.
.addTags("Order")
// Mark critical.
.markAsCritical()
// Set the coordinates of the end user.
.setGeo(43.595089, -88.444602)
// Set the user id that is in our system and provide a friendly name.
.setUserIdentity(user.Id, user.FullName)
// Submit the event.
.submit();
}
The Exceptionless client can also be configured to send data to your self hosted instance. This is configured by setting the serverUrl
setting to point to your Exceptionless instance:
You can set the serverUrl
on the default ExceptionlessClient
instance:
exceptionless.ExceptionlessClient.default.config.serverUrl = 'http://localhost:5000';
You can set the serverUrl
on the default ExceptionlessClient
instance:
var client = require('exceptionless.node').ExceptionlessClient.default;
client.config.serverUrl = 'http://localhost:5000';
By default the Exceptionless Client will report all available metadata including potential PII data. You can fine tune the collection of information via Data Exclusions or turning off collection completely.
Please visit the docs for detailed information on how to configure the client to meet your requirements.
If you need help, please contact us via in-app support, open an issue or join our chat on Discord. We’re always here to help if you have any questions!
If you find a bug or want to contribute a feature, feel free to create a pull request.
Clone this repository:
git clone https://github.com/exceptionless/Exceptionless.JavaScript.git
Install Node.js. Node is used for building and testing purposes.
Install gulp and the development dependencies using npm.
npm install
Build the project by running the following gulp command.
npm run build
Test the project by running the following gulp command.
npm run test
During development, you can use relative paths to require Exceptionless, e.g. require('./dist/exceptionless.node.js')
when you are running Node.js from the git root directory.
Thanks to all the people who have contributed!
FAQs
JavaScript client for Exceptionless
We found that exceptionless demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.