Advertisement
Guest User

Untitled

a guest
Apr 25th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. import os
  2. import logging
  3. import sys
  4. import time
  5. import traceback
  6.  
  7. from mypackage import __version__
  8.  
  9.  
  10. def _exception_handler(error_type, error_value, error_traceback):
  11. """Log all uncaught exceptions at runtime with sys.excepthook"""
  12. log = logging.getLogger(__name__)
  13. log.exception("Uncaught exception {} {}".format(
  14. str(error_type), str(error_value)))
  15. tb = traceback.format_exception(
  16. error_type, error_value, error_traceback)
  17. traceback_string = ''
  18. for ln in tb:
  19. traceback_string += ln
  20. log.exception(traceback_string)
  21.  
  22.  
  23. def _log_file_begins(settings):
  24. """Initialize logging and begin writing log file.
  25.  
  26. Parameters
  27. ----------
  28. settings : dictionary of user input settings.
  29.  
  30. Returns
  31. -------
  32. log_filename : str
  33. Filepath to output log text file location.
  34. """
  35. timestamp = time.strftime('%d-%b-%Y_%H-%M%p', time.localtime())
  36. log_filename = os.path.join(os.path.abspath(os.path.dirname(__file__)),
  37. '..', 'logs', 'logging.conf')
  38. if os.path.exists(log_filename):
  39. os.remove(log_filename)
  40. sys.excepthook = _exception_handler
  41. logging.basicConfig(
  42. format="%(asctime)s %(message)s",
  43. level=logging.INFO,
  44. handlers=[
  45. logging.FileHandler("{}".format(log_filename)),
  46. logging.StreamHandler()
  47. ])
  48. log = logging.getLogger(__name__)
  49. # Log user input arguments
  50. log.info("Wersion {}".format(__version__))
  51. log.info("{}".format(timestamp))
  52. log.info("========== USER CONFIG SETTINGS ==========")
  53. for key, val in settings.items():
  54. log.info("{}: {}".format(key, val))
  55. log.info("=========== END OF USER INPUT ============")
  56. return log_filename
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement