From 60bcba0534ef0434d0719f950c24d23815abf90f Mon Sep 17 00:00:00 2001
From: ahmedk <karim.ahmed@xfel.eu>
Date: Tue, 24 Sep 2024 15:57:34 +0200
Subject: [PATCH] feat: simplify implementation to JSON per line

---
 src/xfel_calibrate/setup_logging.py | 35 +----------------------------
 1 file changed, 1 insertion(+), 34 deletions(-)

diff --git a/src/xfel_calibrate/setup_logging.py b/src/xfel_calibrate/setup_logging.py
index baf0d6ae3..da34494b7 100644
--- a/src/xfel_calibrate/setup_logging.py
+++ b/src/xfel_calibrate/setup_logging.py
@@ -34,39 +34,6 @@ class CustomJsonFormatter(jsonlogger.JsonFormatter):
             log_record['exc_info'] = self.formatException(record.exc_info)
 
 
-class JSONArrayHandler(logging.FileHandler):
-    def __init__(self, filename, mode='a', encoding=None, delay=False):
-        super().__init__(filename, mode, encoding, delay)
-        self.file_empty = True
-
-    def emit(self, record):
-        try:
-            msg = self.format(record)
-            json_msg = json.loads(msg)
-
-            with self.lock:
-                if self.stream is None:
-                    self.stream = self._open()
-
-                if self.file_empty:
-                    self.stream.write('[\n')
-                    self.file_empty = False
-                else:
-                    self.stream.write(',\n')
-
-                json.dump(json_msg, self.stream, indent=2)
-                self.stream.flush()
-        except Exception:
-            self.handleError(record)
-
-    def close(self):
-        if self.stream is not None:
-            with self.lock:
-                if not self.file_empty:
-                    self.stream.write('\n]')
-            super().close()
-
-
 # Create a logger
 logger = logging.getLogger()
 logger.setLevel(logging.INFO)
@@ -80,7 +47,7 @@ formatter = CustomJsonFormatter(
 # Function to create a file handler with job-specific JSON log file
 def create_job_specific_handler(log_level, file_suffix):
     log_file = f'{file_suffix}_{JOB_ID}.json'
-    handler = JSONArrayHandler(log_file, mode='a+', delay=True)
+    handler = logging.FileHandler(log_file, delay=True)
     handler.setLevel(log_level)
     handler.setFormatter(formatter)
     return handler
-- 
GitLab