Merlijn van Deen has uploaded a new change for review.
https://gerrit.wikimedia.org/r/280668
Change subject: Port wikibugs logging to forrestbot
......................................................................
Port wikibugs logging to forrestbot
Take optional --logfile argument to specify log file location. Log files
are private by default (might leak private information?) and log on
DEBUG level, except for requests (INFO level)
Change-Id: Ieadf87faf001e2660d6788053a48d2b70b61114f
---
M forrestbot.py
A wblogging.py
2 files changed, 55 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/labs/tools/forrestbot
refs/changes/68/280668/1
diff --git a/forrestbot.py b/forrestbot.py
index fabce93..1889fd2 100644
--- a/forrestbot.py
+++ b/forrestbot.py
@@ -8,6 +8,14 @@
import requests
import logging
+from wblogging import LoggingSetupParser
+
+parser = LoggingSetupParser(
+ description="Process changesets and add release tags as required",
+)
+args = parser.parse_args()
+
+logging.getLogger('requests').setLevel(logging.INFO)
logger = logging.getLogger('forrestbot')
import gerrit_rest
diff --git a/wblogging.py b/wblogging.py
new file mode 100644
index 0000000..318691b
--- /dev/null
+++ b/wblogging.py
@@ -0,0 +1,47 @@
+import os
+import sys
+import logging
+import logging.handlers
+import argparse
+
+
+def private_open(file, flags, dir_fd=None):
+ return os.open(file, flags, mode=0o600, dir_fd=dir_fd)
+
+
+class
PrivateTimedRotatingFileHandler(logging.handlers.TimedRotatingFileHandler):
+ def _open(self):
+ return open(self.baseFilename, self.mode, encoding=self.encoding,
opener=private_open)
+
+
+class LoggingSetupParser(argparse.ArgumentParser):
+ def __init__(self, *args, **kwargs):
+ super(LoggingSetupParser, self).__init__(*args, **kwargs)
+ self.add_argument(
+ "--logfile", dest='logfile', default=None,
+ help="Log to this (rotated) log file; if not provided, log to
stdout",
+ )
+
+ def parse_args(self, *args, **kwargs):
+ result = super(LoggingSetupParser, self).parse_args(*args, **kwargs)
+ self.set_up_logging(result)
+ return result
+
+ def set_up_logging(self, args):
+ logger = logging.getLogger()
+ logger.setLevel(logging.DEBUG)
+
+ if args.logfile:
+ handler = PrivateTimedRotatingFileHandler(
+ args.logfile,
+ when='midnight', backupCount=7,
+ utc=True,
+ encoding='utf-8',
+ )
+ print("Logging to %s" % args.logfile)
+ else:
+ handler = logging.StreamHandler(sys.stdout)
+ handler.setLevel(logging.DEBUG)
+ formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s
- %(message)s')
+ handler.setFormatter(formatter)
+ logger.addHandler(handler)
--
To view, visit https://gerrit.wikimedia.org/r/280668
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ieadf87faf001e2660d6788053a48d2b70b61114f
Gerrit-PatchSet: 1
Gerrit-Project: labs/tools/forrestbot
Gerrit-Branch: master
Gerrit-Owner: Merlijn van Deen <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits