importsys#debug level, can be 'warn', 'verbose'log_level='warn'classKaffeError(Exception):passdefprint_stderr(msg):sys.stderr.write('%s\n'%msg)defdebug(msg):iflog_level=='verbose':print_stderr('[DEBUG]'+msg)defnotice(msg):print_stderr('[NOTICE]'+msg)defwarn(msg):print_stderr('[WARNING]'+msg)defset_loglevel(level):globallog_levelif'warn'!=leveland'verbose'!=level:raiseException('not supported log level[%s]'%(level))log_level=level