MCPcopy Create free account
hub / github.com/VectifyAI/PageIndex / JsonLogger

Class JsonLogger

pageindex/utils.py:283–319  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

281
282
283class JsonLogger:
284 def __init__(self, file_path):
285 # Extract PDF name for logger name
286 pdf_name = get_pdf_name(file_path)
287
288 current_time = datetime.now().strftime("%Y%m%d_%H%M%S")
289 self.filename = f"{pdf_name}_{current_time}.json"
290 os.makedirs("./logs", exist_ok=True)
291 # Initialize empty list to store all messages
292 self.log_data = []
293
294 def log(self, level, message, **kwargs):
295 if isinstance(message, dict):
296 self.log_data.append(message)
297 else:
298 self.log_data.append({'message': message})
299 # Add new message to the log data
300
301 # Write entire log data to file
302 with open(self._filepath(), "w") as f:
303 json.dump(self.log_data, f, indent=2)
304
305 def info(self, message, **kwargs):
306 self.log("INFO", message, **kwargs)
307
308 def error(self, message, **kwargs):
309 self.log("ERROR", message, **kwargs)
310
311 def debug(self, message, **kwargs):
312 self.log("DEBUG", message, **kwargs)
313
314 def exception(self, message, **kwargs):
315 kwargs["exception"] = True
316 self.log("ERROR", message, **kwargs)
317
318 def _filepath(self):
319 return os.path.join("logs", self.filename)
320
321
322

Callers 1

page_index_mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected