diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index ccef3f0..e51b97e 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -8259,12 +8259,20 @@ CreateCheckPoint(int flags)
 	 * better if you don't need to keep two WAL segments around to recover the
 	 * checkpoint.
 	 */
+	elog(LOG, "prevPtr %X/%X, curInsert %X/%X, progress %X/%X, redo %X/%X",
+		 (uint32) (prevPtr >> 32), (uint32) prevPtr,
+		 (uint32) (curInsert >> 32), (uint32) curInsert,
+		 (uint32) (GetProgressRecPtr() >> 32), (uint32) GetProgressRecPtr(),
+		 (uint32) (ControlFile->checkPointCopy.redo >> 32),
+		 (uint32) ControlFile->checkPointCopy.redo);
 	if ((flags & (CHECKPOINT_IS_SHUTDOWN | CHECKPOINT_END_OF_RECOVERY |
 				  CHECKPOINT_FORCE)) == 0)
 	{
+		elog(LOG, "Not a forced or shutdown checkpoint");
 		if (GetProgressRecPtr() == prevPtr &&
 			prevPtr / XLOG_SEG_SIZE == curInsert / XLOG_SEG_SIZE)
 		{
+			elog(LOG, "Checkpoint is skipped");
 			WALInsertLockRelease();
 			LWLockRelease(CheckpointLock);
 			END_CRIT_SECTION();
@@ -8437,7 +8445,11 @@ CreateCheckPoint(int flags)
 	 * snapshots need to be logged, and skip them on idle systems.
 	 */
 	if (!shutdown && XLogStandbyInfoActive())
+	{
 		progress_lsn = LogStandbySnapshot();
+		elog(LOG, "snapshot taken by checkpoint %X/%X",
+			 (uint32) (progress_lsn >> 32), (uint32) progress_lsn);
+	}
 
 	START_CRIT_SECTION();
 
diff --git a/src/backend/postmaster/bgwriter.c b/src/backend/postmaster/bgwriter.c
index 22374b0..d55e446 100644
--- a/src/backend/postmaster/bgwriter.c
+++ b/src/backend/postmaster/bgwriter.c
@@ -308,17 +308,25 @@ BackgroundWriterMain(void)
 		{
 			TimestampTz timeout = 0;
 			TimestampTz now = GetCurrentTimestamp();
+			XLogRecPtr	progress_lsn = GetProgressRecPtr();
+			XLogRecPtr	insert_lsn = GetInsertRecPtr();
 
 			timeout = TimestampTzPlusMilliseconds(last_snapshot_ts,
 												  LOG_SNAPSHOT_INTERVAL_MS);
 
+			elog(LOG, "bgwriter progress_lsn %X/%X, insert_lsn %X/%X",
+				 (uint32) (progress_lsn >> 32), (uint32) progress_lsn,
+				 (uint32) (insert_lsn >> 32), (uint32) insert_lsn);
 			/*
 			 * only log if enough time has passed.
 			 */
 			if (now >= timeout &&
-				GetProgressRecPtr() != GetInsertRecPtr())
+				progress_lsn != insert_lsn)
 			{
-				(void) LogStandbySnapshot();
+				XLogRecPtr lsn;
+				lsn = LogStandbySnapshot();
+				elog(LOG, "snapshot taken by bgwriter %X/%X",
+					 (uint32) (lsn >> 32), (uint32) lsn);
 				last_snapshot_ts = now;
 			}
 		}
