From e8b1d580912a228d990e496663ddb16ce10db724 Mon Sep 17 00:00:00 2001 From: Ivan Kolodyazhny Date: Wed, 7 Sep 2016 13:03:37 +0300 Subject: [PATCH] Make failure formatter configurable for DynamicLoggingListener DynamicLoggingListener uses only formatters.FailureFormatter to format errors. We should have API to pass formatter instance to DynamicLoggingListener to make it more flexible. Change-Id: I9658fbac97e4074b551a50d6016a92806a3636c1 Implements: blueprint dynamic-logging-listener-formatter-support --- taskflow/listeners/logging.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/taskflow/listeners/logging.py b/taskflow/listeners/logging.py index ac1ecffc..36b767d3 100644 --- a/taskflow/listeners/logging.py +++ b/taskflow/listeners/logging.py @@ -111,7 +111,8 @@ class DynamicLoggingListener(base.Listener): flow_listen_for=base.DEFAULT_LISTEN_FOR, retry_listen_for=base.DEFAULT_LISTEN_FOR, log=None, failure_level=logging.WARNING, - level=logging.DEBUG, hide_inputs_outputs_of=()): + level=logging.DEBUG, hide_inputs_outputs_of=(), + fail_formatter=None): super(DynamicLoggingListener, self).__init__( engine, task_listen_for=task_listen_for, flow_listen_for=flow_listen_for, retry_listen_for=retry_listen_for) @@ -129,8 +130,12 @@ class DynamicLoggingListener(base.Listener): } self._hide_inputs_outputs_of = frozenset(hide_inputs_outputs_of) self._logger = misc.pick_first_not_none(log, self._LOGGER, LOG) - self._fail_formatter = formatters.FailureFormatter( - self._engine, hide_inputs_outputs_of=self._hide_inputs_outputs_of) + if fail_formatter is None: + self._fail_formatter = formatters.FailureFormatter( + self._engine, + hide_inputs_outputs_of=self._hide_inputs_outputs_of) + else: + self._fail_formatter = fail_formatter def _flow_receiver(self, state, details): """Gets called on flow state changes."""