diff --git a/src/constants/analytics.js b/src/constants/analytics.js index 43e17ba1..be55304d 100644 --- a/src/constants/analytics.js +++ b/src/constants/analytics.js @@ -15,7 +15,6 @@ const GaEvents = Object.freeze({ const GaCategories = Object.freeze({ API_RESPONSE: 'Api_Response', BAILOUT: 'Bailout', - BAILOUT_DETAILS: 'Bailout-Details', CONFIRMATION_CLICKED: "confirmation clicked", CONFIRMATION_CLICKED_INSHOP: "inshop confirmation clicked", CONFIRMATION_CLICKED_MOBILE: "mobile confirmation clicked", diff --git a/src/helpers/logger.js b/src/helpers/logger.js index 705138d8..e583f7c1 100644 --- a/src/helpers/logger.js +++ b/src/helpers/logger.js @@ -49,17 +49,19 @@ export class Logger { json = `Failed to serialize log details: ${error}`; } - return `Application: ${applicationConfig.APPLICATION_NAME} - ClientTag: ${store.issConfig?.clientTag} - ParentAccountNumber: ${store.issConfig?.parentAccountNumber} - ClientName: ${store.issConfig?.clientName} - LastPageVisited: ${store.applicationUser?.lastPageVisited} - SessionLogSequenceNumber: ${sessionKey} - ReferralSequenceNumber: ${store.order?.referralSequenceNumber} - ReferralNumber: ${store.order?.referralNumber} - EON: ${store.order?.eon} - Message: ${message} - JSON: ${json}`; + return [ + `Application: ${applicationConfig.APPLICATION_NAME}`, + `ClientTag: ${store.issConfig?.clientTag}`, + `ParentAccountNumber: ${store.issConfig?.parentAccountNumber}`, + `ClientName: ${store.issConfig?.clientName}`, + `LastPageVisited: ${store.applicationUser?.lastPageVisited}`, + `SessionLogSequenceNumber: ${sessionKey}`, + `ReferralSequenceNumber: ${store.order?.referralSequenceNumber}`, + `ReferralNumber: ${store.order?.referralNumber}`, + `EON: ${store.order?.eon}`, + `Message: ${message}`, + `JSON: ${json}` + ].join('\n'); } writeLogEntry(endpoint, logEntry) { diff --git a/src/layouts/bailout-page/bailout-page.vue b/src/layouts/bailout-page/bailout-page.vue index 15516488..8e7fa5dd 100644 --- a/src/layouts/bailout-page/bailout-page.vue +++ b/src/layouts/bailout-page/bailout-page.vue @@ -116,13 +116,18 @@ export default { mixins: [BaseFormMixin, analyticsMixIn], async beforeRouteEnter(to, from, next) { const fromPage = from?.query?.issPage || 'external'; + // Only log bailout event if user is coming from a different page. // This ensures that we cannot get stuck in a loop, if the bailout-page ever bails out. if (fromPage !== issPageValues.BAILOUT_PAGE) { - const bailoutCode = useMainStore().pageData(issPageValues.BAILOUT_PAGE).bailoutCode; - const bailoutErrorMessage = useMainStore().pageData(issPageValues.BAILOUT_PAGE).errorMessage; + const bailoutPageData = useMainStore().pageData(issPageValues.BAILOUT_PAGE); + const bailoutCode = bailoutPageData.bailoutCode; const bailoutString = Object.keys(BailoutCode).find(key => BailoutCode[key] === bailoutCode); - analyticsMixIn.methods.pushEventToGA(GaCategories.BAILOUT_DETAILS, bailoutString, "Page: " + fromPage + " - Error Message: " + bailoutErrorMessage, true, null, null); + + // Log Bailout info to the error log for quick searching. + global.$logger.logError(`Bailout - Page: ${fromPage} - BailoutCode: ${bailoutCode} - BailoutString: ${bailoutString}`, bailoutPageData); + + // Log a couple main bailout items to GA and session log events. analyticsMixIn.methods.pushEventToGA(GaCategories.BAILOUT, bailoutString, fromPage, true, null, null); }