5 def makeLogger(options):
6 logger = logging.getLogger("main")
7 logger.setLevel(logging.INFO)
8 stdout = logging.StreamHandler(sys.stdout)
9 logger.addHandler(stdout)
13 if not options.debug: stdout.setLevel(logging.ERROR)
14 if options.debug: logger.setLevel(logging.DEBUG)
17 class UserException(Exception):
18 """User friendly exceptions inherit from here"""
21 class NullLogHandler(logging.Handler):
22 """Log handler that doesn't do anything"""
23 def emit(self, record):
26 class WizardOptionParser(optparse.OptionParser):
27 """Configures some default user-level options"""
28 def __init__(self, *args, **kwargs):
29 optparse.OptionParser.__init__(self, *args, **kwargs)
30 self.add_option("-v", "--verbose", dest="verbose", action="store_true",
31 default=False, help="Turns on verbose output")
32 self.add_option("--debug", dest="debug", action="store_true",
33 default=False, help="Turns on debugging output")
34 def parse_all(self, argv, logger):
35 options, numeric_args = self.parse_args(argv)
36 return options, numeric_args, logger and logger or makeLogger(options)