[Pywikipedia-l] SVN: [6372] branches/rewrite/pywikibot
russblau at svn.wikimedia.org
russblau at svn.wikimedia.org
Wed Feb 18 17:53:13 UTC 2009
Revision: 6372
Author: russblau
Date: 2009-02-18 17:53:12 +0000 (Wed, 18 Feb 2009)
Log Message:
-----------
add command-line flag for per-component debug output
Modified Paths:
--------------
branches/rewrite/pywikibot/bot.py
branches/rewrite/pywikibot/config2.py
Modified: branches/rewrite/pywikibot/bot.py
===================================================================
--- branches/rewrite/pywikibot/bot.py 2009-02-18 16:51:04 UTC (rev 6371)
+++ branches/rewrite/pywikibot/bot.py 2009-02-18 17:53:12 UTC (rev 6372)
@@ -270,7 +270,14 @@
elif arg == "-debug":
if moduleName not in config.log:
config.log.append(moduleName)
- config.debug_log = True
+ if "" not in config.debug_log:
+ config.debug_log.append("")
+ elif arg.startswith("-debug:"):
+ if moduleName not in config.log:
+ config.log.append(moduleName)
+ component = arg[len("-debug:") : ]
+ if component not in config.debug_log:
+ config.debug_log.append(component)
elif arg == '-verbose' or arg == "-v":
config.verbose_output += 1
elif arg == '-daemonize':
@@ -316,7 +323,7 @@
root_logger = logging.getLogger()
root_logger.handlers = [] # get rid of default handler
- root_logger.setLevel(DEBUG) # all records go to logger
+ root_logger.setLevel(VERBOSE) # all records except DEBUG go to logger
# configure default handler for VERBOSE and INFO levels
default_handler = TerminalHandler(strm=sys.stderr)
@@ -336,10 +343,8 @@
logfile = config.datafilepath("%s-bot.log" % moduleName)
file_handler = logging.handlers.RotatingFileHandler(
filename=logfile, maxBytes=2 << 20, backupCount=5)
- if config.debug_log:
- file_handler.setLevel(DEBUG)
- else:
- file_handler.setLevel(VERBOSE)
+
+ file_handler.setLevel(DEBUG)
form = logging.Formatter(
fmt="%(asctime)s %(filename)18s, %(lineno)d: "
"%(levelname)-8s %(message)s",
@@ -347,6 +352,10 @@
)
file_handler.setFormatter(form)
root_logger.addHandler(file_handler)
+ for component in config.debug_log:
+ debuglogger = logging.getLogger(component)
+ debuglogger.setLevel(DEBUG)
+ debuglogger.addHandler(file_handler)
# handler for level STDOUT
output_handler = TerminalHandler(strm=sys.stdout)
@@ -413,13 +422,16 @@
-nolog Disable the logfile (if it is enabled by default).
--debug Enable the logfile and include extensive debugging data.
+-debug:item Enable the logfile and include extensive debugging data
+-debug for component "item" (or all components if the second form
+ is used).
-putthrottle:n Set the minimum time (in seconds) the bot will wait between
-pt:n saving pages.
--verbose Have the bot provide additional output that may be useful in
--v debugging.
+-verbose Have the bot provide additional console output that may be
+-v useful in debugging.
+
''' % modname
try:
exec('import %s as module' % modname)
Modified: branches/rewrite/pywikibot/config2.py
===================================================================
--- branches/rewrite/pywikibot/config2.py 2009-02-18 16:51:04 UTC (rev 6371)
+++ branches/rewrite/pywikibot/config2.py 2009-02-18 17:53:12 UTC (rev 6372)
@@ -226,7 +226,7 @@
verbose_output = 0
# if True, include a lot of debugging info in logfile
# (overrides log setting above)
-debug_log = False
+debug_log = []
############## INTERWIKI SETTINGS ##############
More information about the Pywikipedia-l
mailing list