def exception(self, *args):
        (E, e, tb) = sys.exc_info()
        tbinfo = traceback.extract_tb(tb)
        path = '|'.join(map(operator.itemgetter(2), tbinfo)) % '[%s]'
        eStrId = '%s:%s' % (E, path)
        eId = hex(hash(eStrId) & 0xFFFFF)
        logging.Logger.exception(self, *args)
        self.error('Exception id: %s', eId)
        self.debug('%s', utils.python.collect_extra_debug_data())
        # The traceback should be sufficient if we want it.
        # self.error('Exception string: %s', eStrId)
dataset/ETHPy150Open ProgVal/Limnoria/src/log.py/Logger.exception/swapped operands of `%`