⚙️ Configure Salesforce Debug Log Monitoring
GermainUX collects and analyzes Salesforce Debug Logs to provide detailed visibility into Apex execution and related Salesforce activity.
🔍 What Debug Log Monitoring Can Collect
|
Item |
|---|
|
Apex exceptions |
|
Custom events |
|
Visualforce execution |
|
Database operations |
|
SOQL queries |
|
Apex code-unit execution |
|
Classes and triggers |
|
DML operations |
|
Transaction timing and resource usage available in the logs |
This information helps teams identify why a Salesforce transaction was slow, failed, or produced an unexpected result.
📈 What Debug Log Monitoring Helps Analyze
Use Salesforce Debug Log Monitoring to:
|
Use |
|---|
|
Detect Apex exceptions |
|
Find slow classes, triggers, and code units |
|
Analyze SOQL execution |
|
Identify excessive or inefficient database activity |
|
Understand Visualforce performance |
|
Investigate failed Salesforce transactions |
|
Examine custom diagnostic events |
|
Correlate technical activity with affected Salesforce users |
|
Support root-cause analysis with transaction-level evidence |
Debug Log Monitoring is performed by the GermainUX Engine.
✅ Prerequisites
Before configuring Debug Log Monitoring, confirm that:
|
Requirement |
|---|
|
A GermainUX Engine is deployed and running. |
|
Salesforce monitoring has been deployed through the Salesforce Application wizard. |
|
The Salesforce OAuth connection is active. |
|
The integration user can access Salesforce Debug Logs. |
|
Salesforce is configured to generate the required logs for the intended users or transactions. |
|
The selected GermainUX Engine can reach Salesforce APIs. |
|
The organization has sufficient Salesforce API and debug-log capacity. |
For the initial integration, see Deploy GermainUX for Salesforce.
GermainUX can collect only the debug logs that Salesforce generates and makes available to the integration user. If Salesforce does not create a log for the affected execution, GermainUX cannot retrieve it.
🔁 Enable Debug Log Monitoring
Debug Log Monitoring is enabled automatically when Salesforce monitoring is deployed through the Salesforce Application wizard.
To deploy it:
-
Open GermainUX Workspace.
-
Open the left navigation menu.
-
Select Wizards.
-
Select Salesforce Application.
-
Choose the GermainUX Engine that will monitor Salesforce.
-
Enter the Salesforce connection and authentication settings.
-
Expand Show Advanced if you want to customize the collection interval.
-
Set Debug Log Monitoring Interval.
-
Complete the wizard.
The wizard deploys three related components used by Salesforce Debug Log Monitoring.
⏰ Default Collection Frequency
By default, GermainUX retrieves Salesforce Debug Logs once per hour.
The appropriate interval depends on:
|
Factor |
|---|
|
How quickly teams need the data |
|
Debug-log volume |
|
Number of monitored users |
|
Number of Salesforce organizations |
|
Salesforce API usage |
|
GermainUX processing and storage requirements |
|
How long Salesforce retains the logs |
A shorter interval provides fresher data but increases API activity and processing. A longer interval reduces collection activity but may delay investigation and increase the risk that short-lived source data is no longer available.
🔧 Configure the Frequency During Deployment
During the initial Salesforce Application wizard:
-
Select Show Advanced.
-
Locate Debug Log Monitoring Interval.
-
Enter the required frequency.
-
Complete the wizard.
🔁 Change the Frequency After Deployment
To update the schedule of an existing debug-log monitor:
-
Open GermainUX Workspace.
-
Open the left navigation menu.
-
Select Germain.
-
Open the State tab.
-
Search for:
Type Name = Salesforce Debug Log Monitor -
Select the applicable component.
-
Update Execution Schedule.
-
Save the change.
-
Repeat the review for each related Debug Log Monitoring component when applicable.
Confirm that the related components use compatible schedules and remain enabled.
⛔ Disable Debug Log Monitoring
Salesforce Debug Log Monitoring uses three related components. Disable all three to stop collection completely.
-
Open GermainUX Workspace.
-
Open the left navigation menu.
-
Select Germain.
-
Open the State tab.
-
Search for:
Salesforce Debug Log -
Identify all three related components for the Salesforce organization.
-
Turn off the toggle in the Enabled column for each component.
-
Save the changes if prompted.
Disabling only one component may leave part of the debug-log collection or processing workflow active.
Previously collected data remains available according to the configured GermainUX retention policy.
▶️ Re-enable Debug Log Monitoring
To resume collection:
-
Return to Germain → State.
-
Search for
Salesforce Debug Log. -
Enable all three related components.
-
Confirm their execution schedules.
-
Save the configuration.
-
Allow the next scheduled executions to complete.
📦 Data Collected From Debug Logs
The exact information depends on the logging generated by Salesforce, but GermainUX can extract and normalize the following types of evidence.
Exceptions
Exception data can include:
|
Attribute |
|---|
|
Exception type |
|
Message |
|
Apex class or trigger |
|
Method |
|
Line number |
|
Stack trace |
|
Transaction context |
Use this information to group recurring exceptions and identify their source.
⚡ Code-Unit Execution
Code-unit events can reveal:
|
Metric |
|---|
|
Apex class execution |
|
Trigger execution |
|
Workflow activity |
|
Execution duration |
|
Parent and child activity |
|
Transaction sequence |
🔎 SOQL Execution
SOQL metrics can help identify:
|
Metric |
|---|
|
Slow queries |
|
Frequently executed queries |
|
Repeated queries |
|
Query duration |
|
Query volume within a transaction |
|
Database activity associated with slow user interactions |
🗄️ Database and DML Activity
Database execution data can provide evidence about:
|
Operation |
|---|
|
Inserts |
|
Updates |
|
Deletes |
|
Upserts |
|
Transaction activity |
|
Duration |
|
Related Apex execution |
📄 Visualforce Activity
Visualforce information can help analyze:
|
Aspect |
|---|
|
Page execution |
|
Controller activity |
|
Server-side processing |
|
Related database operations |
|
Exceptions |
|
Page-performance problems |
💡 Custom Events
GermainUX can collect applicable custom diagnostic events present in Salesforce Debug Logs.
Use custom events to expose application-specific details not available through standard log records.
📊 View Debug Log Data
Open:
GermainUX Workspace → Dashboards → All → Salesforce Logs
The dashboard can include:
|
Dashboard Item |
|---|
|
Salesforce code-debug events |
|
Apex exceptions |
|
Code-unit executions |
|
Database executions |
|
SOQL executions |
|
Visualforce activity |
|
Execution duration |
|
Trends and breakdowns |
|
Access to individual log-derived records |
Select any metric to drill through to the underlying instances and related evidence.
🏆 Salesforce Debug Log KPIs
See Salesforce Debug Log KPIs.
These KPIs can be used to identify:
|
KPI |
|---|
|
Exception volume |
|
Slow code units |
|
Slow or excessive SOQL execution |
|
Database-execution time |
|
Visualforce activity |
|
Changes following a deployment |
|
Affected Salesforce users and workflows |
🔍 Analyze a Slow or Failed Salesforce Interaction
When browser monitoring and correlation are configured, use this investigation flow:
-
Detect a slow click, error, or failed workflow.
-
Open an affected user instance.
-
Review the user’s Session Replay.
-
Identify the action and transaction time.
-
Review related Debug Log KPIs.
-
Inspect Apex class and trigger execution.
-
Review SOQL and database activity.
-
Check for exceptions.
-
Determine which code, query, or integration contributed to the issue.
-
Track and validate the fix.
This connects the user-visible symptom to the Salesforce execution evidence.
🔎 Configure Exception Categorization
Exception messages often contain changing values such as record IDs, timestamps, or request identifiers.
Configure categorization so technically equivalent exceptions are grouped together.
Useful category dimensions include:
|
Dimension |
|---|
|
Exception type |
|
Apex class |
|
Trigger |
|
Method |
|
Message pattern |
|
Stack-trace pattern |
|
Expected or unexpected status |
|
User-facing impact |
See Configure Apex Exception Monitoring.
🔔 Configure Alerts
Useful alert conditions include:
|
Condition |
|---|
|
A new Apex exception appears. |
|
Exception volume exceeds a threshold. |
|
A critical code unit fails. |
|
SOQL duration exceeds its SLA. |
|
Query volume approaches an operational threshold. |
|
A Salesforce deployment causes a performance regression. |
|
The same error affects multiple users. |
|
A debug-log collection component fails. |
|
No logs are collected when activity is expected. |
Avoid alerting on every debug record. Alert on categorized, actionable conditions.
📋 Validate Debug Log Monitoring
After the first scheduled collection:
-
Confirm that all three related components are enabled.
-
Confirm that their most recent executions succeeded.
-
Confirm that the next execution times match the intended schedule.
-
Generate or locate a known Salesforce Debug Log in a controlled environment.
-
Verify that GermainUX collects it.
-
Confirm that expected code-unit, SOQL, database, exception, or Visualforce data appears.
-
Verify the Salesforce organization and environment.
-
Confirm timestamps and transaction details.
-
Test any configured categorization or alert.
-
Confirm that user-session correlation works when configured.
No Debug Logs Appear
If no data is collected:
-
Confirm that Salesforce generated Debug Logs during the selected period.
-
Verify that the correct users or transactions are being logged.
-
Confirm that the Salesforce OAuth connection is active.
-
Confirm that the integration user can access Debug Logs.
-
Check that all three GermainUX Debug Log Monitoring components are enabled.
-
Review their last execution and next scheduled execution.
-
Confirm that the GermainUX Engine is running.
-
Check network connectivity from the Engine to Salesforce.
-
Review Engine logs for authorization, API, parsing, and download errors.
-
Check Salesforce API usage and applicable limits.
-
Verify dashboard organization, environment, and time filters.
-
Confirm that the collection interval is short enough for the source logs to remain available.
❓ Some Transactions Are Missing
Salesforce does not necessarily produce Debug Logs for every transaction automatically.
If some transactions are missing:
|
Check |
|---|
|
Confirm that Salesforce logging is active for the affected user or execution context. |
|
Check whether the relevant logging period expired. |
|
Verify that the log was not removed or overwritten before collection. |
|
Confirm that log-level settings include the required detail. |
|
Review Salesforce log-volume limits. |
|
Verify that scheduled, batch, integration, or automated executions use the expected execution identity. |
✂️ Debug Logs Are Truncated or Incomplete
Salesforce may limit the size, volume, retention, or detail of Debug Logs.
If a log lacks required evidence:
|
Action |
|---|
|
Reduce unnecessary log categories. |
|
Focus logging on the relevant users or execution period. |
|
Reproduce the issue in a controlled non-production environment. |
|
Confirm that the required Salesforce log levels are enabled. |
|
Review Salesforce limits and log-generation behavior. |
|
Supplement Debug Logs with Real-Time Event Monitoring, Apex Code Monitoring, or browser telemetry. |
⚙️ Performance, Volume, and Retention
Debug logging can generate significant data and may affect Salesforce limits and GermainUX storage.
For production use:
|
Recommendation |
|---|
|
Enable only the detail needed. |
|
Target relevant users and investigations where possible. |
|
Avoid leaving highly verbose logging enabled indefinitely. |
|
Monitor Salesforce API consumption. |
|
Monitor GermainUX ingestion and storage. |
|
Configure appropriate data retention. |
|
Review schedules after an investigation ends. |
|
Disable unnecessary Debug Log Monitoring components. |
🔒 Security and Privacy
Debug Logs can contain sensitive information, including:
|
Sensitive Item |
|---|
|
Salesforce record IDs |
|
User identifiers |
|
Field values |
|
Query text |
|
Apex variables |
|
Integration endpoints |
|
Error messages |
|
Internal application details |
Before production enablement:
|
Action |
|---|
|
Restrict access to debug-log dashboards and instances. |
|
Configure masking, anonymization, and exclusions. |
|
Avoid logging credentials, session IDs, or OAuth tokens. |
|
Use a dedicated least-privilege integration account. |
|
Apply an appropriate retention period. |
|
Review the configuration with Salesforce security and privacy owners. |
🔗 Related Documentation
ℹ️ Get More Information
GermainUX can help determine which monitoring, analytics and automation capabilities are appropriate for your Salesforce CRM environment.
Component: Engine, JS Profiler, Mobile App, RPA Bot Recorder, RUM Ext
Feature Availability: 2017.1 or later