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