'Adds trace message to the entry which should contain useful information about why
plugin did not operate on entry. Accept and Reject messages are added to trace automatically.
:param string message: Message to add into entry trace.
:param string operation: None, reject, accept or fail
:param plugin: Uses task.current_plugin by default, pass value to override'

def trace(self, message, operation=None, plugin=None):

    if (operation not in (None, u'accept', u'reject', u'fail')):
        raise ValueError((u'Unknown    operation    %s' % operation))
    item = (plugin, operation, message)
    if (item not in self.traces):
        self.traces.append(item)
