Advertisement
Guest User

Untitled

a guest
Jan 29th, 2015
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. import json
  2. import Keys
  3. import httplib
  4. import logging
  5. import logging.handlers
  6. import SoundSystem
  7.  
  8. def init(log_file):
  9. # Setup the basic logging configuration
  10. logLevel = logging.INFO
  11. logFormat = '%(asctime)s | %(levelname)-7s | %(message)s'
  12. logging.basicConfig(level=logLevel, format=logFormat)
  13. # Setup the log to file
  14. logfile = logging.handlers.TimedRotatingFileHandler(log_file, when='W0', backupCount=10)
  15. logfile.setLevel(logLevel)
  16. logfile.setFormatter(logging.Formatter(logFormat))
  17. file_logger = logging.getLogger('file-logger')
  18. file_logger.addHandler(logfile)
  19.  
  20. def debug(component, message, json_data=None, value=None, exception=None):
  21. DEBUG = False
  22. if DEBUG:
  23. log = _stringify(component, message)
  24. file_logger.debug(log)
  25.  
  26. def log(component, message):
  27. file_logger = logging.getLogger('file-logger')
  28. log = _stringify(component, message)
  29. file_logger.info(log)
  30.  
  31. def track(component, value):
  32. file_logger = logging.getLogger('file-logger')
  33. file_logger.info(_stringify(component, value))
  34. _sendToCloud(component, value)
  35.  
  36. def error(component, message, exception=None):
  37. file_logger = logging.getLogger('file-logger')
  38. file_logger.exception(component)
  39. file_logger.debug(message)
  40. if exception is not None:
  41. file_logger.debug(str(exception))
  42. file_logger.debug("-- end --")
  43. try:
  44. SoundSystem.play('/sounds/error.mp3')
  45. except:
  46. pass
  47.  
  48. def _stringify(component, message, json_data=None, value=None, exception=None):
  49. new_line = "\r\n"
  50. json_data = None
  51. log = "[" + component + "] " + message
  52. try:
  53. seperator_line = False
  54. if json_data is not None:
  55. log += new_line + json.dumps(json_data)
  56. seperator_line = True
  57. if value is not None:
  58. log += new_line + str(value)
  59. seperator_line = True
  60. if exception is not None:
  61. log += new_line + str(exception)
  62. seperator_line = True
  63. if seperator_line == True:
  64. log += new_line + "---------------------------------------------------"
  65. return log
  66. except:
  67. return "LOG EXCEPTION " + log
  68.  
  69.  
  70. def _sendToCloud(component, value):
  71. try:
  72. content = {}
  73. content["user_key"] = Keys.APPENGINE_USER
  74. content["component"] = component
  75. content["value"] = value
  76. content = json.dumps(content)
  77. headers = {}
  78. headers["Content-Type"] = "application/json"
  79. headers["Accept"] = "*/*"
  80. conn = httplib.HTTPSConnection("petele-home-automation.appspot.com")
  81. conn.request("POST", "/track/", content, headers)
  82. response = conn.getresponse()
  83. if response.status != 200:
  84. error("SendToCloud", "Server side error syncing track data to cloud.")
  85. conn.close()
  86. except Exception, e:
  87. error("SendToCloud", "Client side error syncing track data to cloud.", e)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement