GRASS Programmer's Manual
6.4.2(2012)
|
00001 """! 00002 @package debug 00003 00004 @brief Debugging 00005 00006 Classes: 00007 - DebugMsg 00008 00009 @code 00010 from debug import Debug as Debug 00011 Debug.msg (3, 'debug message') 00012 @endcode 00013 00014 COPYRIGHT: (C) 2007-2009, 2011 by the GRASS Development Team 00015 This program is free software under the GNU General Public License 00016 (>=v2). Read the file COPYING that comes with GRASS for details. 00017 00018 @author Martin Landa <landa.martin gmail.com> 00019 """ 00020 00021 import os 00022 import sys 00023 00024 import globalvar 00025 00026 import grass.script as grass 00027 00028 class DebugMsg: 00029 """!wxGUI debugging 00030 00031 @code 00032 g.gisenv set=WX_DEBUG=[0-5] 00033 @endcode 00034 """ 00035 def __init__(self): 00036 # default level 00037 self.debuglevel = 0 00038 00039 self.SetLevel() 00040 00041 def SetLevel(self): 00042 """!Initialize gui debug level 00043 """ 00044 self.debuglevel = int(grass.gisenv().get('WX_DEBUG', 0)) 00045 00046 def msg(self, level, message, *args): 00047 """!Print debug message 00048 00049 @param level debug level (0-5) 00050 @param message message to be printed 00051 @param *args formatting params 00052 """ 00053 # self.SetLevel() 00054 if self.debuglevel > 0 and level > 0 and level <= self.debuglevel: 00055 if args: 00056 sys.stderr.write("GUI D%d/%d: " % (level, self.debuglevel) + \ 00057 message % args + os.linesep) 00058 else: 00059 sys.stderr.write("GUI D%d/%d: " % (level, self.debuglevel) + \ 00060 message + os.linesep) 00061 sys.stderr.flush() # force flush (required for MS Windows) 00062 00063 def GetLevel(self): 00064 """!Return current GUI debug level""" 00065 return self.debuglevel 00066 00067 # Debug instance 00068 Debug = DebugMsg() 00069 00070 # testing 00071 if __name__ == "__main__": 00072 import gcmd 00073 gcmd.RunCommand('g.gisenv', 00074 set = 'DEBUG=3') 00075 00076 for level in range (4): 00077 Debug.msg (level, "message level=%d" % level)