Source code for larpix.logger.stdout_logger

from __future__ import print_function
import time

from larpix.logger import Logger

[docs]class StdoutLogger(Logger): ''' The StdoutLogger is logger class that acts as a test logger class. All objects are displayed according to their string representation and routed to stdout. :param buffer_length: how many data messages to hang on to before flushing buffer to stdout :param mode: how logger file should be opened (not implemented in ``StdoutLogger``) ''' def __init__(self, filename=None, buffer_length=0, mode='wa', enabled=False): super(StdoutLogger, self).__init__(enabled=enabled) self.filename = filename self._buffer = [] self.buffer_length = buffer_length
[docs] def record(self, data, direction=0): ''' Send the specified data to stdout :param data: list of data to be written to log :param direction: 0 if packets were sent to ASICs, 1 if packets were received from ASICs. optional, default=0 ''' if not self.is_enabled(): return if not isinstance(data,list): raise ValueError('data must be a list') self._buffer += ['Record: {}'.format(str(data_obj)) for data_obj in data] if len(self._buffer) > self.buffer_length: self.flush()
[docs] def record_configs(self, chips): ''' Print chips configs to stdout :param chips: list of chips to print ''' for chip in chips: print(chip) print(chip.config) print()
[docs] def flush(self): ''' Flushes any held data ''' for msg in self._buffer: print(msg) self._buffer = []