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

Change subject: eventlogging_cleaner.py: separate logs betweem stdout/stderr$
......................................................................

eventlogging_cleaner.py: separate logs betweem stdout/stderr$

Separate the logging levels to emit ERRORs only to stderr.$
The script will probably run as cron and it will be easier$
with the new configuration to get error notifications via email.$

Bug: T156933$
Change-Id: Ib78c09992181b6d95a0c90c7168b50fb7edb8215
---
M modules/role/files/mariadb/eventlogging_cleaner.py
1 file changed, 19 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/56/364956/1

diff --git a/modules/role/files/mariadb/eventlogging_cleaner.py 
b/modules/role/files/mariadb/eventlogging_cleaner.py
index 4baf78b..a94f9cf 100644
--- a/modules/role/files/mariadb/eventlogging_cleaner.py
+++ b/modules/role/files/mariadb/eventlogging_cleaner.py
@@ -60,6 +60,15 @@
 log = logging.getLogger(__name__)
 
 
+class MaxLevelFilter(logging.Filter):
+
+    def __init__(self, level):
+        self.level = level
+
+    def filter(self, record):
+        return record.levelno < self.level
+
+
 class Database(object):
 
     def __init__(self, db_host, db_name, db_user, db_password=None,
@@ -402,9 +411,6 @@
                         ' (default: 91)')
     parser.add_argument('--dry-run', dest='dry_run', action='store_true',
                         help='Only print sql commands without executing them')
-    parser.add_argument('--logfile', dest='logfile', default=None,
-                        help='Redirect the script\'s output to a file rather '
-                             'than stdout')
     parser.add_argument('--batch-size', dest='batch_size', default=1000, 
type=int,
                         help='Maximum number of DB rows to update/delete in 
one go.'
                              ' (default: 1000)')
@@ -419,20 +425,17 @@
                              'option is preferred). Default: /etc/my.cnf')
     args = parser.parse_args()
 
-    log_format = ('%(levelname)s: line %(lineno)d: %(message)s')
+    log_format = logging.Formatter('%(levelname)s: line %(lineno)d: 
%(message)s')
+    stdout_h = logging.StreamHandler(sys.stdout)
+    stdout_h.addFilter(MaxLevelFilter(logging.WARNING))
+    stdout_h.setFormatter(log_format)
 
-    if args.logfile:
-        logging.basicConfig(
-            filename=args.logfile,
-            level=logging.INFO,
-            format=log_format
-        )
-    else:
-        logging.basicConfig(
-            stream=sys.stdout,
-            level=logging.INFO,
-            format=log_format
-        )
+    stderr_h = logging.StreamHandler(sys.stderr)
+    stderr_h.setLevel(logging.ERROR)
+    stderr_h.setFormatter(log_format)
+
+    log.addHandler(stdout_h)
+    log.addHandler(stderr_h)
 
     # Args basic checks
     if args.no_whitelist and args.whitelist:

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib78c09992181b6d95a0c90c7168b50fb7edb8215
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Elukey <ltosc...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to