[ONOS-6425] Improve logging for transactions

Change-Id: I74ff83a96aa76782a724d9db3e1a9557a02bacf5
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/Transaction.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/Transaction.java
index 8ad8cb8..0e2e45d 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/Transaction.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/Transaction.java
@@ -25,6 +25,8 @@
 import org.onosproject.store.service.Version;
 import org.onosproject.store.service.TransactionContext;
 import org.onosproject.store.service.TransactionException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static com.google.common.base.Preconditions.checkState;
@@ -105,6 +107,7 @@
     private static final String TX_INACTIVE_ERROR = "transaction is not active";
     private static final String TX_UNPREPARED_ERROR = "transaction has not been prepared";
 
+    protected final Logger log = LoggerFactory.getLogger(getClass());
     protected final TransactionId transactionId;
     protected final Transactional<T> transactionalObject;
     private final AtomicBoolean open = new AtomicBoolean();
@@ -191,9 +194,11 @@
      * @return a completable future to be completed once the transaction has been started
      */
     public CompletableFuture<Version> begin() {
+        log.debug("Beginning transaction {} for {}", transactionId, transactionalObject);
         open();
         return transactionalObject.begin(transactionId).thenApply(lock -> {
             this.lock = lock;
+            log.trace("Transaction lock acquired: {}", lock);
             return lock;
         });
     }
@@ -212,6 +217,7 @@
     public CompletableFuture<Boolean> prepare(List<T> updates) {
         checkOpen();
         checkActive();
+        log.debug("Preparing transaction {} for {}", transactionId, transactionalObject);
         Version lock = this.lock;
         checkState(lock != null, TX_INACTIVE_ERROR);
         setState(State.PREPARING);
@@ -234,6 +240,7 @@
     public CompletableFuture<Boolean> prepareAndCommit(List<T> updates) {
         checkOpen();
         checkActive();
+        log.debug("Preparing and committing transaction {} for {}", transactionId, transactionalObject);
         Version lock = this.lock;
         checkState(lock != null, TX_INACTIVE_ERROR);
         setState(State.PREPARING);
@@ -255,6 +262,7 @@
     public CompletableFuture<Void> commit() {
         checkOpen();
         checkPrepared();
+        log.debug("Committing transaction {} for {}", transactionId, transactionalObject);
         setState(State.COMMITTING);
         return transactionalObject.commit(transactionId).thenRun(() -> {
             setState(State.COMMITTED);
@@ -271,6 +279,7 @@
     public CompletableFuture<Void> rollback() {
         checkOpen();
         checkPrepared();
+        log.debug("Rolling back transaction {} for {}", transactionId, transactionalObject);
         setState(State.ROLLING_BACK);
         return transactionalObject.rollback(transactionId).thenRun(() -> {
             setState(State.ROLLED_BACK);