diff --git a/bundles/org.eclipse.osgi/.options b/bundles/org.eclipse.osgi/.options
index 8e606f0..2ffeaa1 100644
--- a/bundles/org.eclipse.osgi/.options
+++ b/bundles/org.eclipse.osgi/.options
@@ -40,6 +40,10 @@
 org.eclipse.osgi/debug/storage=false
 # Debug the bundle file reading
 org.eclipse.osgi/debug/bundleFile=false
+# Debug the bundle file open calls
+org.eclipse.osgi/debug/bundleFile/open=false
+# Debug the bundle file close calls
+org.eclipse.osgi/debug/bundleFile/close=false
 
 # Eclipse adaptor options
 org.eclipse.osgi/eclipseadaptor/debug = false
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/connect/ConnectBundleFile.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/connect/ConnectBundleFile.java
index 2570312..f71245c 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/connect/ConnectBundleFile.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/connect/ConnectBundleFile.java
@@ -141,4 +141,9 @@
 	Optional<ClassLoader> getClassLoader() {
 		return content.getClassLoader();
 	}
+
+	@Override
+	public String toString() {
+		return content.toString();
+	}
 }
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/debug/Debug.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/debug/Debug.java
index 00bb826..daee0c1 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/debug/Debug.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/debug/Debug.java
@@ -109,6 +109,10 @@
 
 	public static final String OPTION_DEBUG_BUNDLE_FILE = ECLIPSE_OSGI + "/debug/bundleFile"; //$NON-NLS-1$
 
+	public static final String OPTION_DEBUG_BUNDLE_FILE_OPEN = ECLIPSE_OSGI + "/debug/bundleFile/open"; //$NON-NLS-1$
+
+	public static final String OPTION_DEBUG_BUNDLE_FILE_CLOSE = ECLIPSE_OSGI + "/debug/bundleFile/close"; //$NON-NLS-1$
+
 	/**
 	 * General debug flag.
 	 */
@@ -180,6 +184,10 @@
 
 	public boolean DEBUG_BUNDLE_FILE = false; // debug/bundleFile
 
+	public boolean DEBUG_BUNDLE_FILE_OPEN = false; // debug/bundleFile/open
+
+	public boolean DEBUG_BUNDLE_FILE_CLOSE = false; // debug/bundleFile/close
+
 	public Debug(DebugOptions dbgOptions) {
 		optionsChanged(dbgOptions);
 	}
@@ -207,6 +215,8 @@
 		DEBUG_CACHED_MANIFEST = dbgOptions.getBooleanOption(OPTION_CACHED_MANIFEST, false);
 		DEBUG_SYSTEM_BUNDLE = dbgOptions.getBooleanOption(OPTION_DEBUG_SYSTEM_BUNDLE, false);
 		DEBUG_BUNDLE_FILE = dbgOptions.getBooleanOption(OPTION_DEBUG_BUNDLE_FILE, false);
+		DEBUG_BUNDLE_FILE_OPEN = dbgOptions.getBooleanOption(OPTION_DEBUG_BUNDLE_FILE_OPEN, false);
+		DEBUG_BUNDLE_FILE_CLOSE = dbgOptions.getBooleanOption(OPTION_DEBUG_BUNDLE_FILE_CLOSE, false);
 	}
 
 	/**
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/bundlefile/CloseableBundleFile.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/bundlefile/CloseableBundleFile.java
index aeb4cc5..a425013 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/bundlefile/CloseableBundleFile.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/bundlefile/CloseableBundleFile.java
@@ -134,6 +134,9 @@
 					// This can throw an IO exception resulting in closed remaining true on exit
 					doOpen();
 					closed = false;
+					if (debug.DEBUG_BUNDLE_FILE_OPEN) {
+						Debug.println("OPENED bundle file - " + toString()); //$NON-NLS-1$
+					}
 				}
 			} else {
 				mruListUse();
@@ -356,6 +359,9 @@
 				doClose();
 				mruListRemove();
 				postClose();
+				if (debug.DEBUG_BUNDLE_FILE_CLOSE) {
+					Debug.println("CLOSED bundle file - " + toString()); //$NON-NLS-1$
+				}
 			}
 		} finally {
 			openLock.unlock();
