diff --git a/modules/salesforce_logger/config/install/salesforce_logger.settings.yml b/modules/salesforce_logger/config/install/salesforce_logger.settings.yml
index 58148004fbbc4fbaf4ee973658ea4c8368d456aa..ea0dd1d338257157b31e0d7f3945f4db7b3950ed 100644
--- a/modules/salesforce_logger/config/install/salesforce_logger.settings.yml
+++ b/modules/salesforce_logger/config/install/salesforce_logger.settings.yml
@@ -1 +1,5 @@
 log_level: "salesforce.error"
+log_push_params: false
+log_push_params_maxlength: null
+log_push_params_sanitized_fields: ""
+log_push_success: false
diff --git a/modules/salesforce_logger/config/schema/salesforce_logger.schema.yml b/modules/salesforce_logger/config/schema/salesforce_logger.schema.yml
index 2796674a000c357b37c4d0779c0b46e80685b995..0cefdc6395744165df0f86a5805ce613a460fa2a 100644
--- a/modules/salesforce_logger/config/schema/salesforce_logger.schema.yml
+++ b/modules/salesforce_logger/config/schema/salesforce_logger.schema.yml
@@ -5,3 +5,17 @@ salesforce_logger.settings:
     log_level:
       type: string
       label: 'Salesforce Logger minimum log level'
+    log_push_params:
+      type: boolean
+      label: 'Enable it to log push params'
+    log_push_params_maxlength:
+      type: integer
+      label: 'Push params log max length'
+    log_push_params_sanitized_fields:
+      type: sequence
+      label: 'Push params field list that must be sanitized'
+      sequence:
+        type: string
+    log_push_success:
+      type: boolean
+      label: 'Enable it to log push success'
diff --git a/modules/salesforce_logger/src/EventSubscriber/SalesforceLoggerSubscriber.php b/modules/salesforce_logger/src/EventSubscriber/SalesforceLoggerSubscriber.php
index 5457a26e027759d43cf8e24dbdd1d0d36570e029..5ed107d4ef091fdc5ba3b80ad581327a9b1465a9 100644
--- a/modules/salesforce_logger/src/EventSubscriber/SalesforceLoggerSubscriber.php
+++ b/modules/salesforce_logger/src/EventSubscriber/SalesforceLoggerSubscriber.php
@@ -7,8 +7,10 @@ use Drupal\Core\Logger\RfcLogLevel;
 use Drupal\Core\Utility\Error;
 use Drupal\salesforce\Event\SalesforceEvents;
 use Drupal\salesforce\Event\SalesforceExceptionEventInterface;
+use Drupal\salesforce_mapping\Event\SalesforcePushParamsEvent;
 use Psr\Log\LoggerInterface;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+use Drupal\Core\Config\ImmutableConfig;
 
 /**
  * Salesforce Logger Subscriber.
@@ -26,12 +28,12 @@ class SalesforceLoggerSubscriber implements EventSubscriberInterface {
    */
   protected $logger;
 
-  /**
+   /**
    * The config factory.
    *
    * @var \Drupal\Core\Config\ConfigFactoryInterface
    */
-  protected $config;
+  protected ConfigFactoryInterface $config;
 
   /**
    * Create a new Salesforce Logger Subscriber.
@@ -51,6 +53,8 @@ class SalesforceLoggerSubscriber implements EventSubscriberInterface {
    */
   public static function getSubscribedEvents() {
     $events = [
+      SalesforceEvents::PUSH_PARAMS => 'salesforcePushParams',
+      SalesforceEvents::PUSH_SUCCESS => 'salesforcePushSuccess',
       SalesforceEvents::ERROR => 'salesforceException',
       SalesforceEvents::WARNING => 'salesforceException',
       SalesforceEvents::NOTICE => 'salesforceException',
@@ -58,6 +62,67 @@ class SalesforceLoggerSubscriber implements EventSubscriberInterface {
     return $events;
   }
 
+  /**
+   * Log params pushed to salesforce.
+   *
+   * This functionality can be setup by configuration so that:
+   *   - The sensitive fields are not saved into database.
+   *   - When the data sent is too large, it can be truncated.
+   *
+   * @param \Drupal\salesforce_mapping\Event\SalesforcePushParamsEvent $event
+   *   Salesforce push params event.
+   */
+  public function salesforcePushParams(SalesforcePushParamsEvent $event) {
+    $settings = $this->config->get('salesforce_logger.settings');
+    $log_push_params = (bool) $settings->get('log_push_params');
+    if ($log_push_params) {
+      $fields_to_sanitize = $settings->get('log_push_params_sanitized_fields') ?? [];
+      $params = $event->getParams()->getParams();
+      foreach ($params as $key => $value) {
+        if (in_array($key, $fields_to_sanitize)) {
+          $params[$key] = '****';
+        }
+      }
+
+      $max_length = $settings->get('log_push_params_maxlength');
+      $params_json = json_encode($params);
+      if (!empty($max_length) && strlen($params_json) > $max_length) {
+        $params_json = substr($params_json, 0, $max_length) . '...';
+      }
+
+      $this->logger->debug(
+        sprintf('Entity of type "%s" is being pushed to salesforce "%s" entity. Drupal entity ID: %s. Data: %s',
+          $event->getEntity()->getEntityTypeId(),
+          $event->getMapping()->getSalesforceObjectType(),
+          $event->getEntity()->id(),
+          $params_json
+        )
+      );
+
+    }
+  }
+
+  /**
+   * Logs when a entity is mapped successfully to salesforce.
+   *
+   * @param \Drupal\salesforce_mapping\Event\SalesforcePushParamsEvent $event
+   *   Push params event with salesforce ID.
+   */
+  public function salesforcePushSuccess(SalesforcePushParamsEvent $event) {
+    $log_push_params = (bool) $this->config->get('log_push_success');
+    if ($log_push_params) {
+      $this->logger->info(
+        sprintf(
+          'Entity of type "%s" has been succesfully sent to salesforce as a "%s" entity. Drupal entity ID: %s. Salesforce entity ID: %s.',
+          $event->getEntity()->getEntityTypeId(),
+          $event->getMapping()->getSalesforceObjectType(),
+          $event->getEntity()->id(),
+          $event->getMappedObject()->sfid()
+        )
+      );
+    }
+  }
+
   /**
    * SalesforceException event callback.
    *
diff --git a/modules/salesforce_logger/src/Form/SettingsForm.php b/modules/salesforce_logger/src/Form/SettingsForm.php
index 076ece83c54d01a79d329df3bcdcc99a9fc8c1d6..c1feb19993c8174604c10c7415edaf6ad11c3719 100644
--- a/modules/salesforce_logger/src/Form/SettingsForm.php
+++ b/modules/salesforce_logger/src/Form/SettingsForm.php
@@ -44,6 +44,30 @@ class SettingsForm extends ConfigFormBase {
       '#default_value' => $config->get('log_level'),
     ];
 
+    $form['log_push_params'] = [
+      '#title' => $this->t('Log push params sent to salesforce'),
+      '#type' => 'checkbox',
+      '#default_value' => $config->get('log_push_params') ?? FALSE,
+    ];
+
+    $form['log_push_params_maxlength'] = [
+      '#title' => $this->t('Log push params max length'),
+      '#type' => 'number',
+      '#default_value' => $config->get('log_push_params_maxlength') ?? NULL,
+    ];
+
+    $form['log_push_params_sanitized_fields'] = [
+      '#title' => $this->t('Fields that must not be shown in logs'),
+      '#type' => 'textarea',
+      '#default_value' => implode("\r\n", $config->get('log_push_params_sanitized_fields') ?? []),
+    ];
+
+    $form['log_push_success'] = [
+      '#title' => $this->t('Log push success when an entity is sent to salesforce'),
+      '#type' => 'checkbox',
+      '#default_value' => $config->get('log_push_success') ?? FALSE,
+    ];
+
     $form = parent::buildForm($form, $form_state);
     return $form;
   }
@@ -54,6 +78,10 @@ class SettingsForm extends ConfigFormBase {
   public function submitForm(array &$form, FormStateInterface $form_state) {
     $config = $this->config('salesforce_logger.settings');
     $config->set('log_level', $form_state->getValue('log_level'));
+    $config->set('log_push_params', $form_state->getValue('log_push_params'));
+    $config->set('log_push_params_maxlength', (int) $form_state->getValue('log_push_params_maxlength'));
+    $config->set('log_push_params_sanitized_fields', explode("\r\n", $form_state->getValue('log_push_params_sanitized_fields') ?? ''));
+    $config->set('log_push_success', $form_state->getValue('log_push_success'));
     $config->save();
     parent::submitForm($form, $form_state);
   }