debug.py 1.6 KB

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