NebulaLogger is a free, open source monitoring & observability project written in Apex and released under MIT. It has 961 GitHub stars, 241 forks and 92 open issues, and was last pushed 10 hours ago. On this registry it ranks #227 of 271 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available.

Nebula Logger for Salesforce

Build codecov skills.sh

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.

Unlocked Package - v4.19.5

Install Unlocked Package in a Sandbox Install Unlocked Package in Production View Documentation

sf package install --wait 20 --security-type AdminsOnly --package 04tg7000000IzRdAAK


Managed Package - v4.19.0

Install Managed Package in a Sandbox Install Managed Package in Production View Milestone

sf package install --wait 30 --security-type AdminsOnly --package 04tg7000000GZbJAAW


AI Agent Skills

Nebula Logger includes Agent Skills that help AI coding agents (Claude Code, GitHub Copilot, Cursor, and others) install, configure, and use Nebula Logger with the recommended patterns.

npx skills add jongpie/NebulaLogger

Features

  1. A unified logging tool that supports easily adding log entries across the Salesforce platform, using:

  2. Built with an event-driven pub/sub messaging architecture, using LogEntryEvent__e platform events. For more details on leveraging platform events, see the Platform Events Developer Guide site

  3. Actionable observability data about your Salesforce org, available directly in your Salesforce org via the 5 included custom objects

    • Log__c
    • LogEntry__c
    • LogEntryTag__c
    • LoggerTag__c
    • LoggerScenario__c
  4. Customizable logging settings for different users & profiles, using the included LoggerSettings__c custom hierarchy settings object

  5. Easily scales in highly complex Salesforce orgs with large data volumes, using global feature flags in LoggerParameter__mdt

  6. Automatic data masking of sensitive data, using rules configured in the LogEntryDataMaskRule__mdt custom metadata type object

  7. View related LogEntry__c records on any Lightning record page in App Builder by adding the 'Related Log Entries' component (relatedLogEntries LWC)

  8. Dynamically assign tags to Log__c and LogEntry__c records for tagging/labeling your logs

  9. Extendable with a built-in plugin framework: easily build or install plugins that enhance Nebula Logger, using Apex or Flow (not currently available in the managed package)

  10. ISVs & package developers have several options for leveraging Nebula Logger in your own packages

    • Optional Dependency: dynamically leverage Nebula Logger in your own packages - when it's available in a subscriber's org - using Apex's Callable interface and Nebula Logger's included implementation CallableLogger (requires v4.14.10 of Nebula Logger or newer)
    • Hard Dependency: add either Nebula Logger's unlocked (no namespace) package or its managed package (Nebula namespace) as a dependency for your package to ensure customers always have a version of Nebula Logger installed
    • No Dependency: Bundle Nebula Logger's metadata into your own project - all of Nebula Logger's metadata is fully open source & freely available. This approach provides with full control of what's included in your own app/project.

Learn more about the design and history of the project on Joys Of Apex blog post

Architecture Overview

Nebula Logger is built natively on Salesforce, using Apex, lightning components and various types of objects. There are no required external dependencies. To learn more about the architecture, check out the architecture overview in the wiki.

Installing

Nebula Logger is available as both an unlocked package and a managed package. The metadata is the same in both packages, but there are some differences in the available functionality & features. All examples in README are for the unlocked package (no namespace) - simply add the Nebula namespace to the examples if you are using the managed package.

Unlocked Package (Recommended) Managed Package
Namespace none Nebula
Future Releases Faster release cycle: new patch versions are released (e.g., v4.4.x) for new enhancements & bugfixes that are merged to the main branch in GitHub Slower release cycle: new minor versions are only released (e.g., v4.x) once new enhancements & bugfixes have been tested and code is stabilized
Public & Protected Apex Methods Any public and protected Apex methods are subject to change in the future - they can be used, but you may encounter deployment issues if future changes to public and protected methods are not backwards-compatible Only global methods are available in managed packages - any global Apex methods available in the managed package will be supported for the foreseeable future
Apex Debug Statements System.debug() is automatically called - the output can be configured with LoggerSettings__c.SystemLogMessageFormat__c to use any field on LogEntryEvent__e Requires adding your own calls for System.debug() due to Salesforce limitations with managed packages
Logger Plugin Framework Leverage Apex or Flow to build your own "plugins" for Logger - easily add your own automation to the any of the included objects: LogEntryEvent__e, Log__c, LogEntry__c, LogEntryTag__c and LoggerTag__c. The logger system will then automatically run your plugins for each trigger event (BEFORE_INSERT, BEFORE_UPDATE, AFTER_INSERT, AFTER_UPDATE, and so on). This functionality is not currently available in the managed package

Getting Started

After installing Nebula Logger in your org, there are a few additional configuration changes needed...

readme truncated — read the full docs on github

Frequently asked questions

Is NebulaLogger free to use?

NebulaLogger is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does NebulaLogger do?

The most robust observability solution for Salesforce experts. Built 100% natively on the platform, and designed to work seamlessly with Apex, Lightning Compone

What is NebulaLogger written in?

NebulaLogger is primarily written in Apex. Its source is publicly available at https://github.com/jongpie/NebulaLogger, and it has 961 GitHub stars.