Error and info logging
The Z Logger object stores log records of error and info types.
- Error type - Records error details whenever an exception occurs from Quote Studio UI.
- Info type - Records the time spent on the server side during
- Preview call
- Rules execution
- Saving preview metrics
- Save in Single Subscription Quoting and Multi Subscription Quoting flows
- Submit in Single Subscription Quoting flow
The log records are available from Quotes version 10.40 onwards.
A Log Cleanup Job is created to clear the log records. It is scheduled for 2:00 AM daily, based on the administrator’s time zone, to clear error log entries that are older than the days mentioned in the Retention Days field. The info-level log records are deleted every two days.
Enable error logging
Follow these steps to enable error logging:
- Navigate to Zuora Config > Advanced Quoting Configuration Settings.
- Click Enable Error Logging to enable error logging.
- Enter the number of retention days in the Retention Days field and click Save.
The default value is 7.
- If you are in Quotes version 10.40, save the settings and refresh the page for the Retention Days field.
- When the Enable Error Logging setting is disabled, the cleanup job is deleted.
Z logger fields
The following table lists the Z logger fields.
Field label and API name | Type and description |
---|---|
Details |
Long Text Area(131072) This field stores the time spent on the server side during the preview call, rules execution, and saving preview metrics. This field populates only for Info type logs. |
Duration (Duration__c) |
Number(18,0) This field stores the duration of the method executed. It is populated only for Info-type logs and was added in Quotes version 10.41. |
Error Message |
Text Area (255) This field stores the description of the generated error. |
Keep? |
Checkbox This field stores information on whether the record should be deleted or retained. |
Log Level |
Picklist This field stores the type of the log record. Picklist values:
|
Log Name |
Auto Number This field stores the name of the record in the format Log-{0000}. |
Method Name |
Text(255) This field stores the method name from which the log record is created in the format 'ClassName.MethodName'. Starting with Quotes version 10.41, this field is also populated for error logs. |
Parent Id |
Text(255) This field stores the parent record's ID [Account/Opportunity/Quote] for tracking purposes. |
Stack Trace |
Long Text Area(131072) This field stores the stack trace to identify where the error is generated in the code. |
User Id (User_Id__c) |
Text(255) This field stores the ID of the logged-in user. This field was added in Quotes version 10.41. |
Log samples
This section shows some log samples:
Error log sample 1
Id |
zqu__Log_Level__c |
zqu__User_Id__c |
zqu__Method_Name__c |
zqu__Keep__c |
zqu__Error_Message__c |
zqu__Parent_Id__c |
zqu__Stack_Trace__c |
zqu__Duration__c |
zqu__Details__c |
---|---|---|---|---|---|---|---|---|---|
a0POx0000099q3sMAA | Error | 005Ox00000J59VxIAJ | QuoteStudioController.previewSummaries | FALSE |
Code: 58730030, Message: The Charge is not allowed to be updated before the last segment effective start date 2025-03-13 |
a0yOx000002t9SvIAI |
QuoteStudioController.previewSummaries | 0 |
Error log sample 2
Id |
zqu__Log_Level__c |
zqu__User_Id__c |
zqu__Method_Name__c |
zqu__Keep__c |
zqu__Error_Message__c |
zqu__Parent_Id__c |
zqu__Stack_Trace__c |
zqu__Duration__c |
zqu__Details__c |
---|---|---|---|---|---|---|---|---|---|
a0POx0000099q3sMAA |
Error |
005Ox00000J59VxIAJ | QuoteStudioController.previewSummaries | FALSE |
System.MathException: Divide by 0 |
a0xRu0000048vlDIAQ |
Class.zqu.QuoteStudioController.applyRules: line 1221, column 1 |
0 |
Log info sample 1 - rules execution
Id |
zqu__Log_Level__c |
zqu__User_Id__c |
zqu__Method_Name__c |
zqu__Keep__c |
zqu__Error_Message__c |
zqu__Parent_Id__c |
zqu__Stack_Trace__c |
zqu__Duration__c |
zqu__Details__c |
a0POx000009FO1DMAW |
Info |
005Ox00000J59VxIAJ |
QuoteStudioController.applyRules |
FALSE |
137 |
Method Enter - applyRules - 2025-03-25 08:32:39 Rule Execution options - ruleIdsToExecute: () Rule Execution options - forceExecuteRules: false Rule Execution options - includeRemovedRatePlan: false Deserialize Rule Execution Options - Duration - 3 ms Deserialize QuoteState - Duration - 46 ms Rule Execution - Duration - 137 ms Method Exit - applyRules - 2025-03-25 08:32:39 |
Log info sample 2 - preview call
Id |
zqu__Log_Level__c |
zqu__User_Id__c |
zqu__Method_Name__c |
zqu__Keep__c |
zqu__Error_Message__c |
zqu__Parent_Id__c |
zqu__Stack_Trace__c |
zqu__Duration__c |
zqu__Details__c |
a0POx000009FaClMAK |
Info |
005Ox00000J59VxIAJ |
QuoteStudioController.previewSummaries |
FALSE |
4795 |
Method Enter - previewSummaries - 2025-03-25 08:14:48 requestId: a0yOx0000031GXWIA2_Amend Subscription_1742890485459 Deserialize QuoteState - Duration - 112 ms Preview API call - Duration - 4457 ms Preview API call - IsAsync - false Preview Execution - Duration - 4795 ms Method Exit - previewSummaries - 2025-03-25 08:14:52 |
Log info sample 3 - saving preview metrics
Id |
zqu__Log_Level__c |
zqu__User_Id__c |
zqu__Method_Name__c |
zqu__Keep__c |
zqu__Error_Message__c |
zqu__Parent_Id__c |
zqu__Stack_Trace__c |
zqu__Duration__c |
zqu__Details__c |
a0POx000009FmvCMAS |
Info |
005Ox00000J59VxIAJ |
QuoteStudioController.savePreviewMetrics |
FALSE |
11902 |
Method Enter - savePreviewMetrics - 2025-03-05 15:04:42 quoteStateJson: {"subscriptionActions":null,"subscription":{"rampIntervals":[],"productTimelines":{"&BzUTtck4mCsKc8uVSMJfw":{"versions":[{"record":{"attributes":{"type":"zqu__QuoteRatePlan__c","url":"/services/data/v63.0/sobjects/zqu__QuoteRatePlan__c/a0sRu000004Fo2DIAS"},},}}} |
Log info sample 4 - save and submit
Id |
zqu__Log_Level__c |
zqu__User_Id__c |
zqu__Method_Name__c |
zqu__Keep__c |
zqu__Error_Message__c |
zqu__Parent_Id__c |
zqu__Stack_Trace__c |
zqu__Duration__c |
zqu__Details__c |
a0POx000009FmySMAS |
Info |
005Ox00000J59VxIAJ |
QuoteStudioController.saveQuoteDetails |
TRUE |
8882 |
Method Enter - saveQuoteDetails - 2025-03-25 07:37:35 isMSQ: false parentQuoteJson: null accountDetailsChanged: false opportunityDetailsChanged: false Deserialize QuoteState - Duration - 121 ms Update Child Quotes - Duration - 0 ms Update Quote, Account, Opportunity Records - Duration - 948 ms Update & Delete Quote Amendment Records - Duration - 0 ms Save Product Timelines for Subscription - Duration - 7038 ms Save Quote Details Execution - Duration - 8882 ms Method Exit - saveQuoteDetails - 2025-03-25 07:37:44 |
Limitations and other considerations
- There is no limit defined for the retention days. However, you should enter a value with the minimum storage impact.
- Log records are not entirely available in CPQ 9. You may see some logs for CPQ 9. It is recommended that you do not depend on the log records for CPQ 9.