Skip to content

Unlocked vs Managed Package

Jonathan Gillespie edited this page Apr 15, 2024 · 3 revisions

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 the documentation 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: the managed package only receives new minor versions (e.g., v4.x). It now follows Salesforce's release cycle - it will have 3 planned releases/year (Spring, Summer, and Winter releases). You can reference the list of milestones to see what's planned for each release.
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