From 8eefa0d614fc0d831202b5bdfc93c43b01f846a3 Mon Sep 17 00:00:00 2001 From: dbist Date: Sat, 9 May 2026 21:58:37 +0530 Subject: [PATCH] Adding Overloads to Logger.logDatabaseErrors() methods with List records --- .../main/logger-engine/classes/Logger.cls | 284 ++++++++++++++++++ 1 file changed, 284 insertions(+) diff --git a/nebula-logger/core/main/logger-engine/classes/Logger.cls b/nebula-logger/core/main/logger-engine/classes/Logger.cls index de0f6df96..87a7cf593 100644 --- a/nebula-logger/core/main/logger-engine/classes/Logger.cls +++ b/nebula-logger/core/main/logger-engine/classes/Logger.cls @@ -3293,6 +3293,18 @@ global with sharing class Logger { global static LogEntryEventBuilder logDatabaseErrors(System.LoggingLevel loggingLevel, LogMessage logMessage, List deleteResults) { return logDatabaseErrors(loggingLevel, logMessage.getMessage(), deleteResults); } + + /** + * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` + * @param loggingLevel The logging level to use for the log entry + * @param logMessage The instance of `LogMessage` to use to set the entry's message field + * @param deleteResults The instance of `List` to log + * @param records The instance of `List` having info about the actual record + * @return The instance of `LogEntryBuilder` was generated to log any errors, or `null` if there are no errors + */ + global static LogEntryEventBuilder logDatabaseErrors(System.LoggingLevel loggingLevel, LogMessage logMessage, List deleteResults,List records) { + return logDatabaseErrors(loggingLevel, logMessage.getMessage(), deleteResults, records); + } /** * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` @@ -3313,6 +3325,33 @@ global with sharing class Logger { return newEntry(loggingLevel, message, shouldSave).setDatabaseResult(resultsToLog); } + /** + * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` + * @param loggingLevel The logging level to use for the log entry + * @param message The string to use to set the entry's message field + * @param deleteResults The instance of `List` to log + * @param records The instance of `List` having info about the actual record + * @return The instance of `LogEntryBuilder` was generated to log any errors, or `null` if there are no errors + */ + global static LogEntryEventBuilder logDatabaseErrors(System.LoggingLevel loggingLevel, String message, List deleteResults,List records) { + if(deleteResults.size() != records.size()){ + return Logger.error('Size of Lists deleteResults and records does not Match'); + } + List resultsToLog = new List(); + List recordsToLog = new List(); + for(Integer i = 0; i < deleteResults.size(); i++){ + Database.DeleteResult deleteResult = deleteResults.get(i); + if (deleteResult.isSuccess() == false) { + resultsToLog.add(deleteResult); + recordsToLog.add(records.get(i)); + } + } + + Boolean shouldSave = resultsToLog.isEmpty() == false && isEnabled(loggingLevel); + return newEntry(loggingLevel, message, shouldSave).setDatabaseResult(resultsToLog).setRecord(recordsToLog); + } + + /** * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` * @param loggingLevel The logging level to use for the log entry @@ -3328,6 +3367,23 @@ global with sharing class Logger { return logDatabaseErrors(loggingLevel, logMessage.getMessage(), emptyRecycleBinResults); } + /** + * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` + * @param loggingLevel The logging level to use for the log entry + * @param logMessage The instance of `LogMessage` to use to set the entry's message field + * @param emptyRecycleBinResults The instance of `List` to log + * @param records The instance of `List` having info about the actual record + * @return The instance of `LogEntryBuilder` was generated to log any errors, or `null` if there are no errors + */ + global static LogEntryEventBuilder logDatabaseErrors( + System.LoggingLevel loggingLevel, + LogMessage logMessage, + List emptyRecycleBinResults, + List records + ) { + return logDatabaseErrors(loggingLevel, logMessage.getMessage(), emptyRecycleBinResults, records); + } + /** * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` * @param loggingLevel The logging level to use for the log entry @@ -3351,6 +3407,37 @@ global with sharing class Logger { return newEntry(loggingLevel, message, shouldSave).setDatabaseResult(resultsToLog); } + /** + * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` + * @param loggingLevel The logging level to use for the log entry + * @param message The string to use to set the entry's message field + * @param emptyRecycleBinResults The instance of `List` to log + * @param records The instance of `List` having info about the actual record + * @return The instance of `LogEntryBuilder` was generated to log any errors, or `null` if there are no errors + */ + global static LogEntryEventBuilder logDatabaseErrors( + System.LoggingLevel loggingLevel, + String message, + List emptyRecycleBinResults, + List records + ) { + if(emptyRecycleBinResults.size() != records.size()){ + return Logger.error('Size of Lists emptyRecycleBinResults and records does not Match'); + } + List resultsToLog = new List(); + List recordsToLog = new List(); + for(Integer i = 0; i < emptyRecycleBinResults.size(); i++){ + Database.EmptyRecycleBinResult emptyRecycleBinResult = emptyRecycleBinResults.get(i); + if (emptyRecycleBinResult.isSuccess() == false) { + resultsToLog.add(emptyRecycleBinResult); + recordsToLog.add(records.get(i)); + } + } + + Boolean shouldSave = resultsToLog.isEmpty() == false && isEnabled(loggingLevel); + return newEntry(loggingLevel, message, shouldSave).setDatabaseResult(resultsToLog).setRecord(recordsToLog); + } + /** * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` * @param loggingLevel The logging level to use for the log entry @@ -3366,6 +3453,23 @@ global with sharing class Logger { return logDatabaseErrors(loggingLevel, logMessage.getMessage(), leadConvertResults); } + /** + * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` + * @param loggingLevel The logging level to use for the log entry + * @param logMessage The instance of `LogMessage` to use to set the entry's message field + * @param leadConvertResults The instance of `List` to log + * @param records The instance of `List` having info about the actual record + * @return The instance of `LogEntryBuilder` was generated to log any errors, or `null` if there are no errors + */ + global static LogEntryEventBuilder logDatabaseErrors( + System.LoggingLevel loggingLevel, + LogMessage logMessage, + List leadConvertResults, + List records + ) { + return logDatabaseErrors(loggingLevel, logMessage.getMessage(), leadConvertResults, records); + } + /** * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` * @param loggingLevel The logging level to use for the log entry @@ -3385,6 +3489,32 @@ global with sharing class Logger { return newEntry(loggingLevel, message, shouldSave).setDatabaseResult(resultsToLog); } + /** + * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` + * @param loggingLevel The logging level to use for the log entry + * @param message The string to use to set the entry's message field + * @param leadConvertResults The instance of `List` to log + * @param records The instance of `List` having info about the actual record + * @return The instance of `LogEntryBuilder` was generated to log any errors, or `null` if there are no errors + */ + global static LogEntryEventBuilder logDatabaseErrors(System.LoggingLevel loggingLevel, String message, List leadConvertResults,List records) { + if(leadConvertResults.size() != records.size()){ + return Logger.error('Size of Lists leadConvertResults and records does not Match'); + } + List resultsToLog = new List(); + List recordsToLog = new List(); + for(Integer i = 0; i < leadConvertResults.size(); i++){ + Database.LeadConvertResult leadConvertResult = leadConvertResults.get(i); + if (leadConvertResult.isSuccess() == false) { + resultsToLog.add(leadConvertResult); + recordsToLog.add(records.get(i)); + } + } + + Boolean shouldSave = resultsToLog.isEmpty() == false && isEnabled(loggingLevel); + return newEntry(loggingLevel, message, shouldSave).setDatabaseResult(resultsToLog).setRecord(recordsToLog); + } + /** * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` * @param loggingLevel The logging level to use for the log entry @@ -3396,6 +3526,19 @@ global with sharing class Logger { return logDatabaseErrors(loggingLevel, logMessage.getMessage(), mergeResults); } + /** + * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` + * @param loggingLevel The logging level to use for the log entry + * @param logMessage The instance of `LogMessage` to use to set the entry's message field + * @param mergeResults The instance of `List` to log + * @param records The instance of `List` having info about the actual record + * @return The instance of `LogEntryBuilder` was generated to log any errors, or `null` if there are no errors + */ + global static LogEntryEventBuilder logDatabaseErrors(System.LoggingLevel loggingLevel, LogMessage logMessage, List mergeResults,List records) { + return logDatabaseErrors(loggingLevel, logMessage.getMessage(), mergeResults, records); + } + + /** * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` * @param loggingLevel The logging level to use for the log entry @@ -3414,6 +3557,32 @@ global with sharing class Logger { Boolean shouldSave = resultsToLog.isEmpty() == false && isEnabled(loggingLevel); return newEntry(loggingLevel, message, shouldSave).setDatabaseResult(resultsToLog); } + + /** + * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` + * @param loggingLevel The logging level to use for the log entry + * @param message The string to use to set the entry's message field + * @param mergeResults The instance of `List` to log + * @param records The instance of `List` having info about the actual record + * @return The instance of `LogEntryBuilder` was generated to log any errors, or `null` if there are no errors + */ + global static LogEntryEventBuilder logDatabaseErrors(System.LoggingLevel loggingLevel, String message, List mergeResults,List records) { + if(mergeResults.size() != records.size()){ + return Logger.error('Size of Lists mergeResults and records does not Match'); + } + List resultsToLog = new List(); + List recordsToLog = new List(); + for(Integer i = 0; i < mergeResults.size(); i++){ + Database.MergeResult mergeResult = mergeResults.get(i); + if (mergeResult.isSuccess() == false) { + resultsToLog.add(mergeResult); + recordsToLog.add(records.get(i)); + } + } + + Boolean shouldSave = resultsToLog.isEmpty() == false && isEnabled(loggingLevel); + return newEntry(loggingLevel, message, shouldSave).setDatabaseResult(resultsToLog).setRecord(recordsToLog); + } /** * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` @@ -3426,6 +3595,18 @@ global with sharing class Logger { return logDatabaseErrors(loggingLevel, logMessage.getMessage(), saveResults); } + /** + * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` + * @param loggingLevel The logging level to use for the log entry + * @param logMessage The instance of `LogMessage` to use to set the entry's message field + * @param saveResults The instance of `List` to log + * @param records The instance of `List` having info about the actual record + * @return The instance of `LogEntryBuilder` was generated to log any errors, or `null` if there are no errors + */ + global static LogEntryEventBuilder logDatabaseErrors(System.LoggingLevel loggingLevel, LogMessage logMessage, List saveResults,List records) { + return logDatabaseErrors(loggingLevel, logMessage.getMessage(), saveResults, records); + } + /** * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` * @param loggingLevel The logging level to use for the log entry @@ -3445,6 +3626,32 @@ global with sharing class Logger { return newEntry(loggingLevel, message, shouldSave).setDatabaseResult(resultsToLog); } + /** + * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` + * @param loggingLevel The logging level to use for the log entry + * @param message The string to use to set the entry's message field + * @param saveResults The instance of `List` to log + * @param records The instance of `List` having info about the actual record + * @return The instance of `LogEntryBuilder` was generated to log any errors, or `null` if there are no errors + */ + global static LogEntryEventBuilder logDatabaseErrors(System.LoggingLevel loggingLevel, String message, List saveResults,List records) { + if(saveResults.size() != records.size()){ + return Logger.error('Size of Lists saveResults and records does not Match'); + } + List resultsToLog = new List(); + List recordsToLog = new List(); + for (Integer i = 0; i < saveResults.size(); i++) { + Database.SaveResult saveResult = saveResults.get(i); + if (saveResult.isSuccess() == false) { + resultsToLog.add(saveResult); + recordsToLog.add(records.get(i)); + } + } + + Boolean shouldSave = resultsToLog.isEmpty() == false && isEnabled(loggingLevel); + return newEntry(loggingLevel, message, shouldSave).setDatabaseResult(resultsToLog).setRecord(recordsToLog); + } + /** * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` * @param loggingLevel The logging level to use for the log entry @@ -3456,6 +3663,18 @@ global with sharing class Logger { return logDatabaseErrors(loggingLevel, logMessage.getMessage(), upsertResults); } + /** + * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` + * @param loggingLevel The logging level to use for the log entry + * @param logMessage The instance of `LogMessage` to use to set the entry's message field + * @param upsertResults The instance of `List` to log + * @param records The instance of `List` having info about the actual record + * @return The instance of `LogEntryBuilder` was generated to log any errors, or `null` if there are no errors + */ + global static LogEntryEventBuilder logDatabaseErrors(System.LoggingLevel loggingLevel, LogMessage logMessage, List upsertResults,List records) { + return logDatabaseErrors(loggingLevel, logMessage.getMessage(), upsertResults, records); + } + /** * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` * @param loggingLevel The logging level to use for the log entry @@ -3475,6 +3694,32 @@ global with sharing class Logger { return newEntry(loggingLevel, message, shouldSave).setDatabaseResult(resultsToLog); } + /** + * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` + * @param loggingLevel The logging level to use for the log entry + * @param message The string to use to set the entry's message field + * @param upsertResults The instance of `List` to log + * @param records The instance of `List` having info about the actual record + * @return The instance of `LogEntryBuilder` was generated to log any errors, or `null` if there are no errors + */ + global static LogEntryEventBuilder logDatabaseErrors(System.LoggingLevel loggingLevel, String message, List upsertResults,List records) { + if(upsertResults.size() != records.size()){ + return Logger.error('Size of Lists upsertResults and records does not Match'); + } + List resultsToLog = new List(); + List recordsToLog = new List(); + for (Integer i = 0; i < upsertResults.size(); i++) { + Database.UpsertResult upsertResult = upsertResults.get(i); + if (upsertResult.isSuccess() == false) { + resultsToLog.add(upsertResult); + recordsToLog.add(records.get(i)); + } + } + + Boolean shouldSave = resultsToLog.isEmpty() == false && isEnabled(loggingLevel); + return newEntry(loggingLevel, message, shouldSave).setDatabaseResult(resultsToLog).setRecord(recordsToLog); + } + /** * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` * @param loggingLevel The logging level to use for the log entry @@ -3486,6 +3731,18 @@ global with sharing class Logger { return logDatabaseErrors(loggingLevel, logMessage.getMessage(), undeleteResults); } + /** + * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` + * @param loggingLevel The logging level to use for the log entry + * @param logMessage The instance of `LogMessage` to use to set the entry's message field + * @param undeleteResults The instance of `List` to log + * @param records The instance of `List` having info about the actual record + * @return The instance of `LogEntryBuilder` was generated to log any errors, or `null` if there are no errors + */ + global static LogEntryEventBuilder logDatabaseErrors(System.LoggingLevel loggingLevel, LogMessage logMessage, List undeleteResults,List records) { + return logDatabaseErrors(loggingLevel, logMessage.getMessage(), undeleteResults, records); + } + /** * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` * @param loggingLevel The logging level to use for the log entry @@ -3505,6 +3762,33 @@ global with sharing class Logger { return newEntry(loggingLevel, message, shouldSave).setDatabaseResult(resultsToLog); } + /** + * @description Creates a log entry for any results within the provided `List` where `isSuccess() != true` + * @param loggingLevel The logging level to use for the log entry + * @param message The string to use to set the entry's message field + * @param undeleteResults The instance of `List` to log + * @param records The instance of `List` having info about the actual record + * @return The instance of `LogEntryBuilder` was generated to log any errors, or `null` if there are no errors + */ + global static LogEntryEventBuilder logDatabaseErrors(System.LoggingLevel loggingLevel, String message, List undeleteResults,List records) { + if(undeleteResults.size() != records.size()){ + return Logger.error('Size of Lists undeleteResults and records does not Match'); + } + List resultsToLog = new List(); + List recordsToLog = new List(); + for (Integer i = 0; i < undeleteResults.size(); i++) { + Database.UndeleteResult undeleteResult = undeleteResults.get(i); + if (undeleteResult.isSuccess() == false) { + resultsToLog.add(undeleteResult); + recordsToLog.add(records.get(i)); + } + } + + Boolean shouldSave = resultsToLog.isEmpty() == false && isEnabled(loggingLevel); + return newEntry(loggingLevel, message, shouldSave).setDatabaseResult(resultsToLog).setRecord(recordsToLog); + } + + /** * @description Adds a new instance of LogEntryEventBuilder to Logger's buffer, when `shouldSave` is `true` * @param loggingLevel The logging level enum value for the new entry