Mforns has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/384530 )

Change subject: Fix refinery banner activity cleaner to allow for email alerts
......................................................................

Fix refinery banner activity cleaner to allow for email alerts

Bug: T178302
Change-Id: I9c6ef64c94a414a60a2e3c45f0969eb5b69fd670
---
M bin/refinery-drop-banner-activity-partitions
1 file changed, 37 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/analytics/refinery 
refs/changes/30/384530/1

diff --git a/bin/refinery-drop-banner-activity-partitions 
b/bin/refinery-drop-banner-activity-partitions
index 10672e0..0d44c51 100755
--- a/bin/refinery-drop-banner-activity-partitions
+++ b/bin/refinery-drop-banner-activity-partitions
@@ -41,19 +41,45 @@
 import os
 
 
+# Set up logging to be split:
+#   INFO+DEBUG+WARNING -> stdout
+#   ERROR              -> stderr
+# Thanks to https://stackoverflow.com/users/5124424/zoey-greer
+class LessThanFilter(logging.Filter):
+    def __init__(self, exclusive_maximum, name=""):
+        super(LessThanFilter, self).__init__(name)
+        self.max_level = exclusive_maximum
+
+    def filter(self, record):
+        #non-zero return means we log this message
+        return 1 if record.levelno < self.max_level else 0
+
+logger = logging.getLogger()
+logger.setLevel(logging.NOTSET)
+
+formatter = logging.Formatter(
+    fmt='%(asctime)s %(levelname)-6s %(message)s',
+    datefmt='%Y-%m-%dT%H:%M:%S',
+)
+
+handler_out = logging.StreamHandler(sys.stdout)
+handler_out.setLevel(logging.DEBUG)
+handler_out.addFilter(LessThanFilter(logging.ERROR))
+handler_out.setFormatter(formatter)
+logger.addHandler(handler_out)
+
+handler_err = logging.StreamHandler(sys.stderr)
+handler_err.setLevel(logging.ERROR)
+handler_err.setFormatter(formatter)
+logger.addHandler(handler_err)
+
+
 if __name__ == '__main__':
     # parse arguments
     arguments = docopt(__doc__)
     days            = int(arguments['--older-than-days'])
     location        = arguments['--location']
     dry_run         = arguments['--dry-run']
-
-    # configure logging
-    logging.basicConfig(
-        level=logging.INFO,
-        format='%(asctime)s %(levelname)-6s %(message)s',
-        datefmt='%Y-%m-%dT%H:%M:%S'
-    )
 
     # files or folders older than this date should be deleted
     threshold_datetime = datetime.now() - 
relativedelta.relativedelta(days=days)
@@ -94,11 +120,11 @@
                             paths_to_delete.append(day_path)
 
     if dry_run:
-        logging.info('Listing {0} directories from {1} 
...'.format(len(paths_to_delete), location))
+        logger.info('Listing {0} directories from {1} 
...'.format(len(paths_to_delete), location))
         for path_to_delete in paths_to_delete:
             print path_to_delete
-        logging.info('Dry run finished!')
+        logger.info('Dry run finished!')
     else:
-        logging.info('Removing {0} directories from {1} 
...'.format(len(paths_to_delete), location))
+        logger.info('Removing {0} directories from {1} 
...'.format(len(paths_to_delete), location))
         HdfsUtils.rm(' '.join(paths_to_delete))
-        logging.info('Done!')
+        logger.info('Done!')

-- 
To view, visit https://gerrit.wikimedia.org/r/384530
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9c6ef64c94a414a60a2e3c45f0969eb5b69fd670
Gerrit-PatchSet: 1
Gerrit-Project: analytics/refinery
Gerrit-Branch: master
Gerrit-Owner: Mforns <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to