@@ -28,6 +28,9 @@ public final class QueryLogger {
2828 /// Enable/disable QueryObserver cache interaction logging
2929 public var logQueryObserver = true
3030
31+ /// Enable/disable GarbageCollector logging
32+ public var logGarbageCollector = true
33+
3134 private init ( ) { }
3235
3336 // MARK: - Logging Methods
@@ -115,6 +118,38 @@ public final class QueryLogger {
115118 guard isEnabled, logQueryObserver else { return }
116119 print ( " 📊 QueryObserver reading query state for hash: \( hash) " )
117120 }
121+
122+ // MARK: - Garbage Collector Logging
123+
124+ /// Log GarbageCollector starting
125+ func logGCStart( interval: TimeInterval ) {
126+ guard isEnabled, logGarbageCollector else { return }
127+ print ( " 🗑️ SwiftUI Query: Starting GarbageCollector with \( interval) s interval " )
128+ }
129+
130+ /// Log GarbageCollector stopping
131+ func logGCStop( ) {
132+ guard isEnabled, logGarbageCollector else { return }
133+ print ( " 🗑️ SwiftUI Query: Stopping GarbageCollector " )
134+ }
135+
136+ /// Log GC cancelled for active query
137+ func logGCCancelled( hash: String ) {
138+ guard isEnabled, logGarbageCollector else { return }
139+ print ( " 🗑️ SwiftUI Query: GC cancelled for \( hash) - Query is active or not eligible " )
140+ }
141+
142+ /// Log GC executing for query
143+ func logGCExecuting( hash: String ) {
144+ guard isEnabled, logGarbageCollector else { return }
145+ print ( " 🗑️ SwiftUI Query: Executing GC for \( hash) " )
146+ }
147+
148+ /// Log GC removing query
149+ func logGCRemoving( hash: String , reason: String ) {
150+ guard isEnabled, logGarbageCollector else { return }
151+ print ( " 🗑️ SwiftUI Query: GC removing \( hash) - \( reason) " )
152+ }
118153}
119154
120155// MARK: - Public API Extensions
@@ -126,6 +161,7 @@ extension QueryLogger {
126161 logQueryClient = true
127162 logQuery = true
128163 logQueryObserver = true
164+ logGarbageCollector = true
129165 }
130166
131167 /// Disable all cache logging (convenience method)
@@ -157,3 +193,5 @@ extension QueryLogger {
157193 logQueryObserver = true
158194 }
159195}
196+
197+ // swiftlint:enable no_print_statements
0 commit comments