From eb1a296287df17af8cfba6cbe451bda07d9c23f8 Mon Sep 17 00:00:00 2001 From: pac23 Date: Jul 29 2019 15:39:36 +0000 Subject: add logger class --- diff --git a/logger.py b/logger.py new file mode 100644 index 0000000..5b1afe7 --- /dev/null +++ b/logger.py @@ -0,0 +1,28 @@ +import sys +import traceback +import logging + +def setup_logging_to_file(filename): + logging.basicConfig( filename=filename, + filemode='a', + level=logging.DEBUG, + format= '%(asctime)s - %(levelname)s - %(message)s', + ) + +def extract_function_name(): + """Extracts failing function name from Traceback + http://stackoverflow.com/questions/2380073/\ + how-to-identify-what-function-call-raise-an-exception-in-python + """ + tb = sys.exc_info()[-1] + stk = traceback.extract_tb(tb, 1) + fname = stk[0][3] + return fname + +def log_exception(e): + logging.error( + "Function {function_name} raised {exception_class} ({exception_docstring}): {exception_message}".format( + function_name = extract_function_name(), #this is optional + exception_class = e.__class__, + exception_docstring = e.__doc__, + exception_message = e.message))