Skip to content

Instantly share code, notes, and snippets.

@alchemyst
Created September 23, 2018 12:05
Show Gist options
  • Save alchemyst/0f6d62017cd150bc489db7059ba6427f to your computer and use it in GitHub Desktop.
Save alchemyst/0f6d62017cd150bc489db7059ba6427f to your computer and use it in GitHub Desktop.
Error loging decorator
import logging
import sys
import functools
logging.basicConfig(level=logging.DEBUG)
LOGGER = logging
def log_if_exception(message):
def decorator(function):
@functools.wraps(function)
def exceptionwrapper(*args, **kwargs):
try:
return function(*args, **kwargs)
except BaseException as e:
LOGGER.critical(message,
stack_info=True,
extra={'exception': e,
'called_function': function.__name__})
sys.exit(1)
return exceptionwrapper
return decorator
@log_if_exception("Couldn't open file")
def open_the_file(filename):
return open(filename)
@log_if_exception("File does not contain valuation_date")
def read_value(a):
return a.read_value("valuation_date")
a = open_the_file("test.txt")
b = read_value(a)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment