debug.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. """
  2. MODULE: debug
  3. CLASSES:
  4. * DebugMsg
  5. PURPOSE: GRASS debugging
  6. from debug import Debug as Debug
  7. Debug.msg (3, 'debug message')
  8. AUTHORS: The GRASS Development Team
  9. Martin Landa <landa.martin gmail.com>
  10. COPYRIGHT: (C) 2007-2008 by the GRASS Development Team
  11. This program is free software under the GNU General Public
  12. License (>=v2). Read the file COPYING that comes with GRASS
  13. for details.
  14. """
  15. import os
  16. import sys
  17. import globalvar
  18. class DebugMsg:
  19. """
  20. GRASS Debugging
  21. export GRASS_WX_DEBUG=[0-5]
  22. """
  23. def __init__(self):
  24. # default level
  25. self.debuglevel = 0
  26. # update level
  27. self._update_level()
  28. def _update_level(self):
  29. debug = os.getenv("GRASS_WX_DEBUG")
  30. if debug is not None:
  31. try:
  32. # only GUI debug messages [GUI:level]
  33. level = int (debug[-1])
  34. except:
  35. level = self.debuglevel
  36. if self.debuglevel != level:
  37. self.debuglevel = level
  38. def msg (self, level, message):
  39. self._update_level()
  40. if self.debuglevel > 0 and level > 0 and level <= self.debuglevel:
  41. print >> sys.stderr, "GUI D%d/%d: %s" % (level, self.debuglevel, message)
  42. def get_level(self):
  43. """!Return current GUI debug level"""
  44. return self.debuglevel
  45. # Debug instance
  46. Debug = DebugMsg()
  47. # testing
  48. if __name__ == "__main__":
  49. import gcmd
  50. gcmd.RunCommand('g.gisenv',
  51. set = 'DEBUG=3')
  52. for level in range (4):
  53. Debug.msg (level, "message level=%d" % level)