- Overview
- Getting Started
- Managing Stacks
- Manual Stacking
- Filtering & Searching
- Bulk Actions
- Project Settings
- Versioning
- Reference Ids
- User Sessions
- Notifications
- Log Levels
- Event De-Duplication
- Integrations
- FAQ
- Comparison
- Security
- API Usage
- Clients
- Self Hosting
Client Configuration Values
- About
- Usage Example
- Updating Client Configuration settings
- Subscribing to Client Configuration Setting changes
About #
Read about client configuration and view in-depth examples
Usage Example #
The below example demonstrates how we would turn on or off log event submissions at runtime without redeploying the app or changing server config settings.
First, we add a (completely arbitrary for this example) enableLogSubmission
client configuration value key with value true
in the Project's Settings in the Exceptionless dashboard.
Then, we register a new client side plugin that runs each time an event is created. If our key (enableLogSubmission
) is set to false and the event type is set to log, we will discard the event.
import { Exceptionless } from "@exceptionless/browser";
await Exceptionless.startup(c => {
c.addPlugin('Conditionally cancel log submission', 100, (context) => {
var enableLogSubmission = context.client.config.settings['enableLogSubmission'];
// only cancel event submission if it’s a log event and
// enableLogSubmission is set to a value and the value is not true.
if (context.event.type === 'log' && (!!enableLogSubmission && enableLogSubmission !== 'true')) {
context.cancelled = true;
}
});
});
Updating Client Configuration settings #
All project settings are synced to the client in almost real time. When an event is submitted to Exceptionless we send down a response header with the current configuration version. If a newer version is available we will immediately retrieve and apply the latest configuration.
By default the client will check after 5 seconds
on client startup (if no events are submitted on startup) and then every 2 minutes
after the last event submission for updated configuration settings.
- Checking for updated settings doesn't count towards plan limits.
- Only the current configuration version is sent when checking for updated settings (no user information will ever be sent).
- If the settings haven't changed, then no settings will be retrieved.
You can also turn off the automatic updating of configuration settings when idle using the code below.
import { Exceptionless } from "@exceptionless/browser";
await Exceptionless.startup(c => {
c.updateSettingsWhenIdleInterval = -1;
});
You can also manually update the configuration settings using the code below.
import { Exceptionless, SettingsManager } from "@exceptionless/browser";
await SettingsManager.updateSettings(Exceptionless.config);
Subscribing to Client Configuration Setting changes #
To be notified when client configuration settings change, subscribe to them using the below code.
import { Exceptionless } from "@exceptionless/browser";
await Exceptionless.startup(c => {
c.subscribeServerSettingsChange((configuration) => {
// configuration.settings contains the new settings
});
});