The most robust observability solution for Salesforce experts. Built 100% natively on the platform, and designed to work seamlessly with Apex, Lightning Components, Flow, OmniStudio, and integrations.
Provides a centralized way to load parameters for SObject handlers & plugins, and casts the parameters to common data types
CALL_STATUS_API → BooleanIndicates if Nebula Logger will make an async callout to https://api.status.salesforce.com to get additional details about the current org, which is then stored on the Log__c record. Controlled by the custom metadata record LoggerParameter.CallStatusApi, or false as the default
DEFAULT_LOG_ENTRY_RELATED_LIST_FIELD_SET → StringThe name of the LogEntry__c field set to use as the default field set when configuring the LWC <c-related-log-entries> within App Builder. Controlled by the custom metadata record LoggerParameter.DefaultLogEntryRelatedListFieldSet, or Related_List_Defaults as the default
ENABLE_LOG_ENTRY_EVENT_STREAM → BooleanIndicates if Nebula Logger's LWC logEntryEventStream is enabled. The component uses the Emp API, which counts towards orgs' daily delivery allocations for platform events. To help reduce usage of the daily allocation limit, orgs can disable the LWC. Controlled by the custom metadata record LoggerParameter.EnableLogEntryEventStream, or true as the default
ENABLE_STACK_TRACE_PARSING → BooleanIndicates if Nebula Logger will parse a stack trace for each log entry, which is then used to populate fields like LogEntry__c.StackTrace__c and LogEntry__c.OriginLocation__c. Controlled by the custom metadata record LoggerParameter.EnableStackTraceParsing, or true as the default
ENABLE_SYSTEM_MESSAGES → BooleanIndicates if Nebula Logger will append its own log entries about the logging system. Controlled by the custom metadata record LoggerParameter.EnableLoggerSystemMessages, or false as the default
ENABLE_TAGGING → BooleanIndicates if Nebula Logger's tagging system is enabled. Controlled by the custom metadata record LoggerParameter.EnableTagging, or true as the default
LOG_BATCH_PURGER_DEFAULT_BATCH_SIZE → IntegerControls the default batch size used by the batchable class LogBatchPurger when purging old logging data. Controlled by the custom metadata record LoggerParameter.LogBatchPurgerDefaultBatchSize, or 500 as the default
NORMALIZE_SCENARIO_DATA → BooleanIndicates if Nebula Logger will store scenarios in the custom object LoggerScenario__c, or in the fields Log__c.TransactionScenarioName__c & LogEntry__c.EntryScenario__c. Controlled by the custom metadata record LoggerParameter.NormalizeScenarioData, or true as the default
NORMALIZE_TAG_DATA → BooleanIndicates if Nebula Logger will store tags in the custom objects LoggerTag__c & LogEntryTag__c, or in the field LogEntry__c.Tags__c. Controlled by the custom metadata record LoggerParameter.NormalizeTagData, or true as the default
PLATFORM_CACHE_PARTITION_NAME → StringThe name of the Platform Cache partition to use for caching (when platform cache is enabled). Controlled by the custom metadata record LoggerParameter.PlatformCachePartitionName, or LoggerCache as the default
QUERY_APEX_CLASS_DATA → BooleanControls if Nebula Logger queries Schema.ApexClass data. When set to false, any Schema.ApexClass fields on LogEntryEvent__e and Log__c will not be populated Controlled by the custom metadata record LoggerParameter.QueryApexClassData, or true as the default
QUERY_APEX_TRIGGER_DATA → BooleanControls if Nebula Logger queries Schema.ApexTrigger data. When set to false, any Schema.ApexTrigger fields on LogEntryEvent__e and Log__c will not be populated Controlled by the custom metadata record LoggerParameter.QueryApexTriggerData, or true as the default
QUERY_AUTH_SESSION_DATA → BooleanControls if Nebula Logger queries Schema.AuthSession data. When set to false, any Schema.AuthSession fields on LogEntryEvent__e and Log__c will not be populated Controlled by the custom metadata record LoggerParameter.QueryAuthSessionData, or true as the default
QUERY_AUTH_SESSION_DATA_SYNCHRONOUSLY → BooleanControls if Nebula Logger queries Schema.AuthSession data synchronously & populated on LogEntryEvent__e records. When set to false, any Schema.AuthSession fields on LogEntryEvent__e will not be populated - the data will instead be queried asynchronously and populated on any resulting Log__c records. Controlled by the custom metadata record LoggerParameter.QueryAuthSessionDataSynchronously, or true as the default
QUERY_FLOW_DEFINITION_VIEW_DATA → BooleanControls if Nebula Logger queries Schema.FlowDefinitionView data. When set to false, any Schema.FlowDefinitionView fields on LogEntryEvent__e and Log__c will not be populated Controlled by the custom metadata record LoggerParameter.QueryFlowDefinitionViewData, or true as the default
QUERY_NETWORK_DATA → BooleanControls if Nebula Logger queries Schema.Network data. When set to false, any Schema.Network fields on LogEntryEvent__e and Log__c will not be populated Controlled by the custom metadata record LoggerParameter.QueryNetworkData, or true as the default
QUERY_NETWORK_DATA_SYNCHRONOUSLY → BooleanControls if Nebula Logger queries Schema.Network data is queried synchronously & populated on LogEntryEvent__e records. When set to false, any Schema.Network fields on LogEntryEvent__e will not be populated - the data will instead be queried asynchronously and populated on any resulting Log__c records. Controlled by the custom metadata record LoggerParameter.QueryNetworkDataSynchronously, or true as the default
QUERY_OMNI_PROCESS_DATA → BooleanControls if Nebula Logger queries Schema.OmniProcess data. When set to false, any Schema.OmniProcess fields on LogEntry__c will not be populated Controlled by the custom metadata record LoggerParameter.QueryOmniProcessData, or true as the default
QUERY_ORGANIZATION_DATA → BooleanControls if Nebula Logger queries Schema.Organization data. When set to false, any Schema.Organization fields on LogEntryEvent__e and Log__c will not be populated Controlled by the custom metadata record LoggerParameter.QueryOrganizationData, or true as the default
QUERY_ORGANIZATION_DATA_SYNCHRONOUSLY → BooleanIndicates if Nebula Logger queries Schema.Organization data is queried synchronously & populated on LogEntryEvent__e records. When set to false, any Schema.Organization fields on LogEntryEvent__e will not be populated - the data will instead be queried asynchronously and populated on any resulting Log__c records. Controlled by the custom metadata record LoggerParameter.QueryOrganizationDataSynchronously, or true as the default
QUERY_RELATED_RECORD_DATA → BooleanControls if Nebula Logger queries data for records synthetically related to a LogEntry__c via LogEntry__c.RecordId__c. When set to false, any fields on LogEntry__c related to LogEntry__c.RecordId__c not be populated Controlled by the custom metadata record LoggerParameter.QueryRelatedRecordData, or true as the default
QUERY_USER_DATA → BooleanControls if Nebula Logger queries Schema.User data. When set to false, any Schema.User fields on LogEntryEvent__e and Log__c will not be populated Controlled by the custom metadata record LoggerParameter.QueryUserData, or true as the default
QUERY_USER_DATA_SYNCHRONOUSLY → BooleanIndicates if Nebula Logger queries Schema.User data is queried synchronously & populated on LogEntryEvent__e records. When set to false, any Schema.User fields on LogEntryEvent__e that rely on querying will not be populated - the data will instead be queried asynchronously and populated on any resulting Log__c records. Controlled by the custom metadata record LoggerParameter.QueryUserDataSynchronously, or true as the default
REQUIRE_SCENARIO_USAGE → BooleanIndicates if Nebula Logger will enforce scenario-based logging to be used. When set to false, specifying a scenario is completely optional. When set to true, a scenario is required to be set before any logging can occur. If a logging method is called & the current scenario is null/blank, then Nebula Logger will throw a runtime exception. Controlled by the custom metadata record LoggerParameter.RequireScenarioUsage, or false as the default
SEND_ERROR_EMAIL_NOTIFICATIONS → BooleanIndicates if Nebula Logger will send an error email notification if any internal exceptions occur. Controlled by the custom metadata record LoggerParameter.SendErrorEmailNotifications, or true as the default
STORE_HEAP_SIZE_LIMIT → BooleanIndicates if Nebula Logger will store the transaction heap limits on LogEntry__c, retrieved from the class System.Limits. Controlled by the custom metadata record LoggerParameter.StoreApexHeapSizeLimit, or true as the default. Relies on LoggerParameter.StoreTransactionLimits to be true, as well.
STORE_HTTP_REQUEST_HEADER_VALUES → BooleanIndicates if Nebula Logger will store the header values when logging an instance of System.HttpRequest. Controlled by the custom metadata record LoggerParameter.StoreHttpRequestHeaderValues, or true as the default. Regardless of how this parameter is configured, Nebula Logger will still log the specified list of header keys of any instance of System.HttpRequest that is logged - this parameter only controls if the header values are stored.
STORE_HTTP_RESPONSE_HEADER_VALUES → BooleanIndicates if Nebula Logger will store the header values when logging an instance of System.HttpResponse. Controlled by the custom metadata record LoggerParameter.StoreHttpResponseHeaderValues, or true as the default. Regardless of how this parameter is configured, Nebula Logger will still log the header keys of any instance of System.HttpResponse that is logged - this parameter only controls if the header values are stored.
STORE_ORGANIZATION_LIMITS → BooleanIndicates if Nebula Logger will store the organization limits on Log__c, retrieved from the class System.OrgLimits. Controlled by the custom metadata record LoggerParameter.StoreOrganizationLimits, or true as the default.
STORE_REST_REQUEST_HEADER_VALUES → BooleanIndicates if Nebula Logger will store the header values when logging an instance of System.RestRequest. Controlled by the custom metadata record LoggerParameter.StoreRestRequestHeaderValues, or true as the default. Regardless of how this parameter is configured, Nebula Logger will still log the header keys of any instance of System.RestRequest that is logged - this parameter only controls if the header values are stored.
STORE_REST_RESPONSE_HEADER_VALUES → BooleanIndicates if Nebula Logger will store the header values when logging an instance of System.RestResponse. Controlled by the custom metadata record LoggerParameter.StoreRestResponseHeaderValues, or true as the default. Regardless of how this parameter is configured, Nebula Logger will still log the header keys of any instance of System.RestResponse that is logged - this parameter only controls if the header values are stored.
STORE_TRANSACTION_LIMITS → BooleanIndicates if Nebula Logger will store the transaction limits on LogEntry__c, retrieved from the class System.Limits. Controlled by the custom metadata record LoggerParameter.StoreTransactionLimits, or true as the default.
SYSTEM_DEBUG_MESSAGE_FORMAT → StringThe merge-field syntax to use when calling System.debug(). Controlled by the custom metadata record LoggerParameter.SystebugMessageFormat, or {OriginLocation__c}\n{Message__c} as the default
USE_FIRST_SCENARIO_FOR_TRANSACTION → BooleanIndicates if Logger.setScenario(String) uses the first specified value (when true), or the last specified value (when false) Controlled by the custom metadata record LoggerParameter.UseFirstSpecifiedScenario, or true as the default
USE_PLATFORM_CACHE → BooleanIndicates if Platform Cache is used to cache organization & session data in the cache partition LoggerCache Controlled by the custom metadata record LoggerParameter.UsePlatformCache, or true as the default
USE_TOPICS_FOR_TAGS → BooleanIndicates if Logger's tagging will use Schema.Topic and Schema.TopicAssignment for storing tags (when true), or uses Nebula Logger's custom objects LoggerTag__c and LogEntryTag__c (when false) Controlled by the custom metadata record LoggerParameter.UseTopicsForTags, or false as the default
getBoolean(String parameterDeveloperName, Boolean defaultValue) → BooleanReturns the configured value of the field Value__c as a Boolean
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
Boolean
Description
The Boolean value configured in the matching instance of LoggerParameter_t
getBooleanList(String parameterDeveloperName, List<Boolean> defaultValue) → List<Boolean>Returns the configured value of the field Value__c as a List<Boolean>
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
List<Boolean>
Description
The List<Boolean> value configured in the matching instance of LoggerParameter_t
getDate(String parameterDeveloperName, Date defaultValue) → DateReturns the configured value of the field Value__c as a Date
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
Date
Description
The Date value configured in the matching instance of LoggerParameter_t
getDateList(String parameterDeveloperName, List<Date> defaultValue) → List<Date>Returns the configured value of the field Value__c as a List<Date>
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
List<Date>
Description
The List<Date> value configured in the matching instance of LoggerParameter_t
getDatetime(String parameterDeveloperName, Datetime defaultValue) → DatetimeReturns the configured value of the field Value__c as a Datetime
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
Datetime
Description
The Datetime value configured in the matching instance of LoggerParameter_t
getDatetimeList(String parameterDeveloperName, List<Datetime> defaultValue) → List<Datetime>Returns the configured value of the field Value__c as a List<Datetime>
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
List<Datetime>
Description
The List<Datetime> value configured in the matching instance of LoggerParameter_t
getDecimal(String parameterDeveloperName, Decimal defaultValue) → DecimalReturns the configured value of the field Value__c as a Decimal
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
Decimal
Description
The Decimal value configured in the matching instance of LoggerParameter_t
getDecimalList(String parameterDeveloperName, List<Decimal> defaultValue) → List<Decimal>Returns the configured value of the field Value__c as a List<Decimal>
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
List<Decimal>
Description
The List<Decimal> value configured in the matching instance of LoggerParameter_t
getDouble(String parameterDeveloperName, Double defaultValue) → DoubleReturns the configured value of the field Value__c as a Double
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
Double
Description
The Double value configured in the matching instance of LoggerParameter_t
getDoubleList(String parameterDeveloperName, List<Double> defaultValue) → List<Double>Returns the configured value of the field Value__c as a List<Double>
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
List<Double>
Description
The List<Double> value configured in the matching instance of LLoggerParameter_t`
getId(String parameterDeveloperName, Id defaultValue) → IdReturns the configured value of the field Value__c as a Id
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
Id
Description
The Id value configured in the matching instance of LoggerParameter_t
getIdList(String parameterDeveloperName, List<Id> defaultValue) → List<Id>Returns the configured value of the field Value__c as a List<Id>
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
List<Id>
Description
The List<Id> value configured in the matching instance of LoggerParameter_t
getInteger(String parameterDeveloperName, Integer defaultValue) → IntegerReturns the configured value of the field Value__c as a Integer
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
Integer
Description
The Integer value configured in the matching instance of LoggerParameter_t
getIntegerList(String parameterDeveloperName, List<Integer> defaultValue) → List<Integer>Returns the configured value of the field Value__c as a List<Integer>
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
List<Integer>
Description
The List<Integer> value configured in the matching instance of LoggerParameter_t
getLong(String parameterDeveloperName, Long defaultValue) → LongReturns the configured value of the field Value__c as a Long
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
Long
Description
The Long value configured in the matching instance of LoggerParameter_t
getLongList(String parameterDeveloperName, List<Long> defaultValue) → List<Long>Returns the configured value of the field Value__c as a List<Long>
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
List<Long>
Description
The List<Long> value configured in the matching instance of LoggerParameter_t
getSObject(String parameterDeveloperName, SObject defaultValue) → SObjectReturns the configured value of the field Value__c as a SObject
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
SObject
Description
The SObject value configured in the matching instance of LoggerParameter_t
getSObjectList(String parameterDeveloperName, List<SObject> defaultValue) → List<SObject>Returns the configured value of the field Value__c as a List<SObject>
| Param | Description |
|---|---|
parameterDeveloperName |
The developer name of the instance of LoggerParameter_t |
defaultValue |
A default value to return instead of null |
Type
List<SObject>
Description
The List<SObject> value configured in the matching instance of LoggerParameter_t
getString(String parameterDeveloperName, String defaultValue) → StringThis method returns the actual parameter if it exists, or if it's empty returns the default value.
| Param | Description |
|---|---|
parameterDeveloperName |
The parameter to return if it exists. |
defaultValue |
The default value to return when the parameter doesn't exist. |
Type
String
Description
A string that's retrieved using the parameter if it's not empty, otherwise the string is defaulted to defaultValue.
getStringList(String parameterDeveloperName, List<String> defaultValue) → List<String>This method returns the value of the parameter if it exists (cast as a list of strings), or if it's empty returns the default list.
| Param | Description |
|---|---|
parameterDeveloperName |
The parameter of the list to return if it exists. |
defaultValue |
The default list to return when the parameter / value doesn't exist. |
Type
List<String>
Description
A list that's retrieved using the parameter if it's not null, otherwise the default list is returned.
matchOnPrefix(String developerNamePrefix) → List<LoggerParameter_t>matchOnPrefix description
| Param | Description |
|---|---|
developerNamePrefix |
A prefix that has been used in the DeveloperName for multiple LoggerParameter_t records |
Type
List<LoggerParameter_t>
Description
The list of matching LoggerParameter_t records