]> git.puffer.fish Git - matthieu/frr.git/commitdiff
lib: Change topology to output INFO and DEBUG to stdout and other levels to stderr
authorMartin Winter <mwinter@opensourcerouting.org>
Thu, 27 Jul 2017 11:09:45 +0000 (04:09 -0700)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 28 Nov 2018 01:22:12 +0000 (20:22 -0500)
Previously, all logs were sent to stderr

tests/topotests/lib/topolog.py

index 3a383c8e732265601a25b1143b31551f6e56561d..f149f34eb3ca9d62a9c1b2f46eb7ec377151e8f0 100644 (file)
@@ -39,6 +39,10 @@ DEBUG_TOPO2LOGGING = {
     'critical': logging.CRITICAL,
 }
 
+class InfoFilter(logging.Filter):
+    def filter(self, rec):
+        return rec.levelno in (logging.DEBUG, logging.INFO)
+
 #
 # Logger class definition
 #
@@ -55,11 +59,21 @@ class Logger(object):
         # Create default global logger
         self.log_level = logging.INFO
         self.logger = logging.Logger('topolog', level=self.log_level)
-        handler = logging.StreamHandler()
-        handler.setFormatter(
+
+        handler_stdout = logging.StreamHandler(sys.stdout)
+        handler_stdout.setLevel(logging.DEBUG)
+        handler_stdout.addFilter(InfoFilter())
+        handler_stdout.setFormatter(
             logging.Formatter(fmt='%(asctime)s %(levelname)s: %(message)s')
         )
-        self.logger.addHandler(handler)
+        handler_stderr = logging.StreamHandler()
+        handler_stderr.setLevel(logging.WARNING)
+        handler_stderr.setFormatter(
+            logging.Formatter(fmt='%(asctime)s %(levelname)s: %(message)s')
+        )
+
+        self.logger.addHandler(handler_stdout)
+        self.logger.addHandler(handler_stderr)
 
         # Handle more loggers
         self.loggers = {'topolog': self.logger}