def log_exception(message, extra=None, data=None): """Log exception if handling exception, error otherwise. It adds extra as key=val to the log message. If data is provided it's stored to fs and filename is added to extra info. :param message: error message :param extra: extra kwargs :param data: data that caused the error """ if not extra: extra = {} if data: extra["file"] = save_error_data(data) for k, v in extra.items(): message = "{} {}={}".format(message, k, v) if data: extra["data"] = data try: logger.exception(message, extra=extra) except AttributeError: # there is attribute error in python3.4 in case there is no exception context logger.error(message, extra=extra)
def log_exception(message, extra=None, data=None): """Log exception if handling exception, error otherwise. It adds extra as key=val to the log message. If data is provided it's stored to fs and filename is added to extra info. :param message: error message :param extra: extra kwargs :param data: data that caused the error """ if not extra: extra = {} if data: extra['file'] = save_error_data(data) for k, v in extra.items(): message = "{} {}={}".format(message, k, v) if data: extra['data'] = data try: logger.exception(message, extra=extra) except AttributeError: # there is attribute error in python3.4 in case there is no exception context logger.error(message, extra=extra)
def test_save_error_data(self): filename = utils.save_error_data("foo") self.assertIn("superdesk", filename) with open(filename) as f: self.assertEqual("foo", f.read())
def test_save_error_data(self): filename = utils.save_error_data('foo') self.assertIn('superdesk', filename) with open(filename) as f: self.assertEqual('foo', f.read())