@@ -69,6 +69,7 @@ def __init__(self, route_name: str, flags: int = 0, data_dir: str = "", auto_sou
6969
7070 self .segment_cache_limit = MIN_SEGMENTS_CACHE
7171 self ._on_segment_merged_callback : Optional [Callable [[], None ]] = None
72+ self ._log_callback : Optional [Callable [[int , str ], None ]] = None # (level, msg)
7273
7374 def __del__ (self ):
7475 if hasattr (self , '_cv' ):
@@ -115,6 +116,13 @@ def set_current_segment(self, seg_num: int) -> None:
115116 def set_callback (self , callback : Callable [[], None ]) -> None :
116117 self ._on_segment_merged_callback = callback
117118
119+ def set_log_callback (self , callback : Callable [[int , str ], None ]) -> None :
120+ self ._log_callback = callback
121+
122+ def _log (self , level : int , msg : str ) -> None :
123+ if self ._log_callback :
124+ self ._log_callback (level , msg )
125+
118126 def set_filters (self , filters : list [bool ]) -> None :
119127 self ._filters = filters
120128
@@ -180,12 +188,14 @@ def _load_segments_in_range(self, seg_nums: list[int], cur_seg_num: int) -> bool
180188 continue
181189
182190 # Load segment (blocking - downloads and parses)
191+ self ._log (0 , f"loading segment { seg_num } ..." )
183192 seg_data = self ._load_segment (seg_num )
184193 with self ._cv :
185194 self ._segments [seg_num ] = seg_data
186195 self ._needs_update = True
187196 self ._cv .notify_all ()
188197 loaded_any = True
198+ self ._log (0 , f"segment { seg_num } loaded with { len (seg_data .events )} events" )
189199
190200 # Only load one segment at a time to be responsive
191201 return loaded_any
@@ -279,4 +289,5 @@ def _merge_segments(self, seg_nums: list[int]) -> bool:
279289 self ._event_data = merged_event_data
280290 self ._merged_segments = segments_to_merge
281291
292+ self ._log (0 , f"merged segments: { sorted (segments_to_merge )} " )
282293 return True
0 commit comments