diff --git a/src/xfel_calibrate/setup_logging.py b/src/xfel_calibrate/setup_logging.py index baf0d6ae35d0a6a114050f580517ebda0f17233b..da34494b7e255f507e6acc6f46d047c5941a0c77 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