Source code for coalib.output.printers.ListLogPrinter
from pyprint.Printer import Printer
from coalib.output.printers.LOG_LEVEL import LOG_LEVEL
from coalib.output.printers.LogPrinter import LogPrinterMixin
from coalib.processes.communication.LogMessage import LogMessage
[docs]class ListLogPrinter(Printer, LogPrinterMixin):
"""
A ListLogPrinter is a log printer which collects all LogMessages to a list
so that the logs can be used at a later time.
"""
def __init__(self,
log_level=LOG_LEVEL.WARNING,
timestamp_format='%X'):
Printer.__init__(self)
self.log_level = log_level
self.logs = []
[docs] def log_message(self, log_message, **kwargs):
if not isinstance(log_message, LogMessage):
raise TypeError('log_message should be of type LogMessage.')
if log_message.log_level < self.log_level:
return
self.logs.append(log_message)
def _print(self, output, **kwargs):
self.info(output, **kwargs)