Source code for worldline.connect.sdk.log.python_communicator_logger

from communicator_logger import CommunicatorLogger


[docs]class PythonCommunicatorLogger(CommunicatorLogger): """ A communicator logger that is backed by the log library. """
[docs] def __init__(self, logger, log_level, error_log_level=None): """ Logs messages to the argument logger using the argument log_level. If absent, the error_log_level will be equal to the log_level. Note that if the CommunicatorLogger's log level is lower than the argument logger's log level (e.g. the CommunicatorLogger is given log.INFO as level and the argument logger has a level of log.WARNING), then nothing will be logged to the logger. :param logger: the logger to log to :param log_level: the log level that will be used for non-error messages logged via the CommunicatorLogger :param error_log_level: the log level that will be used for error messages logged via the CommunicatorLogger. """ CommunicatorLogger.__init__(self) if not error_log_level: error_log_level = log_level if logger is None: raise ValueError("logger is required") if log_level is None: raise ValueError("log_level is required") if error_log_level is None: raise ValueError("error_log_level is required") self.__logger = logger self.__log_level = log_level self.__error_log_level = error_log_level
[docs] def log(self, message, thrown=None): """ Log a message to the underlying logger. If thrown is absent, the message will be logged with the CommunicatorLogger's log_level, if a thrown object is provided, the message and exception will be logged with the CommunicatorLogger's error_log_level. :param message: the message to be logged :param thrown: an optional throwable object """ if not thrown: self.__logger.log(self.__log_level, message) else: self.__logger.log(self.__error_log_level, message, thrown)