freqtrade/freqtrade

View on GitHub
freqtrade/loggers/buffering_handler.py

Summary

Maintainability
A
0 mins
Test Coverage
from logging.handlers import BufferingHandler


class FTBufferingHandler(BufferingHandler):
    def flush(self):
        """
        Override Flush behaviour - we keep half of the configured capacity
        otherwise, we have moments with "empty" logs.
        """
        self.acquire()
        try:
            # Keep half of the records in buffer.
            records_to_keep = -int(self.capacity / 2)
            self.buffer = self.buffer[records_to_keep:]
        finally:
            self.release()