NebulaLogger

The most robust logger for Salesforce. Works with Apex, Lightning Components, Flow, Process Builder & Integrations. Designed for Salesforce admins, developers & architects.

View the Project on GitHub jongpie/NebulaLogger

Nebula Logger for Apex

Logger Engine

ComponentLogger

Controller class used by the lightning web component logger

FlowCollectionLogEntry

Handles adding new log entries in Flow for a particular SObject record collection

FlowLogEntry

Handles adding new log entries in Flow

FlowLogger

Handles some common logic used by FlowLogEntry, FlowRecordLogEntry and FlowCollectionLogEntry

FlowRecordLogEntry

Handles adding new log entries in Flow for a particular SObject record

LogEntryEventBuilder

Builder class that generates each LogEntryEvent__e record

LogMessage

Provides the ability to generate string messages on demand, using String.format()

Logger

The core class for logging

LoggerDataStore

Class used to manage any data-related operations, including database DML statements, publishing platform events via the event bus, and enqueueing queueable jobs

LoggerEngineDataSelector

Selector class used for all queries that are specific to the logger engine layer

LoggerSObjectHandler

Abstract class used by trigger handlers for shared logic

LoggerSObjectProxy

Proxy class used as a middle layer between some problematic SObject Types and the rest of Nebula Logger's codebase. Each inner class maps to a corresponding SObjectType that is difficult to work with Apex for some reason or another, such as not being mockable or creatable, or not existing in all orgs.

LoggerStackTrace

Class used for tracking & parsing stack traces

Log Management

LogBatchPurgeController

Controller class for lwc logBatchPurge, used to provide metrics of Log__c, LogEntry__c, LogEntryTag__c records to purge and allow user to manually run LogBatchPurger from the UI.

LogBatchPurgeScheduler

Schedulable class used to schedule the batch job LogBatchPurger

LogBatchPurger

Batch class used to delete old logs, based on Log__c.LogRetentionDate__c <= :System.today()

LogEntryEventHandler

Processes LogEntryEvent__e platform events and normalizes the data into Log__c and LogEntry__c records

LogEntryEventStreamController

Controller class for lwc logEntryEventStream, used to stream Log Entries in console and Tabular view.

LogEntryFieldSetPicklist

Dynamically returns LogEntry__c field sets in App Builder when configuring the component RelatedLogEntries

LogEntryHandler

Manages setting fields on LogEntry__c before insert & before update

LogEntryMetadataViewerController

Controller class for the LWC logEntryMetadataViewer

LogEntryTagHandler

Handles trigger events for the LogEntryTag__c object

LogHandler

Manages setting fields on Log__c before insert & before update

LogManagementDataSelector

Selector class used for all queries that are specific to the log management layer

LogMassDeleteExtension

Manages mass deleting Log__c records that have been selected by a user on a Log__c list view

LogViewerController

Controller class for the LWC logViewer, used to provided different views on a Log__c record

LoggerEmailSender

Builds and sends email notifications when internal exceptions occur within the logging system

LoggerHomeHeaderController

Controller class for the LWC loggerHomeHeader

LoggerSObjectMetadata

Provides details to LWCs about Logger's SObjects, using @AuraEnabled properties

LoggerScenarioHandler

Handles trigger events for the LoggerScenario__c object

LoggerSettingsController

Controller class for lwc loggerSettings, used to manage records in LoggerSettings__c

LoggerTagHandler

Handles trigger events for the LoggerTag__c object

RelatedLogEntriesController

Controller class for the lightning web component related-log-entries

Configuration

LoggerBatchableContext

Class used by the logging system for batch contextual details

LoggerCache

Class used to cache query results returned by the selector classes

LoggerParameter

Provides a centralized way to load parameters for SObject handlers & plugins, and casts the parameters to common data types

LoggerPlugin

The core of the plugin framework, used to create custom Apex & Flow plugins for LoggerSObjectHandler and LogBatchPurger based on configurations stored in the custom metadata type LoggerPlugin_t

LoggerScenarioRule

Provides a centralized way to load scenario rules that override behavior within Nebula Logger

LoggerTriggerableContext

Class used by the logging system for trigger contextual details

Test Utilities

LoggerMockDataCreator

Utility class used to help with generating mock data when writing Apex tests for Nebula Logger. These methods are generic, and should work in any Salesforce org. These methods can be used when writing Apex tests for plugins.

LoggerMockDataStore

Utility class used to mock any data-related operations for the database, event bus, and queueable jobs. These methods are generic, and should work in any Salesforce org. These methods can be used when writing Apex tests for plugins.

LoggerTestConfigurator

Utility class used to help with setting up Nebula Logger's configurations within a test context. These methods are specific to metadata implemented within Nebula Logger. These methods can be used when writing Apex tests for plugins.