summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoshua Watt <JPEWhacker@gmail.com>2020-03-09 11:33:44 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-03-12 23:02:04 +0000
commit8ebe8a7662200fad9b88be8b08376262a61c85c4 (patch)
treec6cc253a06956e56f3b940d0830567782c60d4a0
parent30461310915f911b80f92e03df694af7c1eb1f46 (diff)
downloadbitbake-8ebe8a7662200fad9b88be8b08376262a61c85c4.tar.gz
lib/bb/msg: Add filter utilities
Adds generic filter utilities that can be used to filter when the log level is greater than or equal to a defined value, or below a defined value, as well as a generic function to translate a string to a logging level (or bitbake logging level) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/msg.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/bb/msg.py b/lib/bb/msg.py
index c70fd8080..8561826a6 100644
--- a/lib/bb/msg.py
+++ b/lib/bb/msg.py
@@ -135,6 +135,28 @@ class BBLogFilterStdOut(BBLogFilter):
return True
return False
+class LogFilterGEQLevel(logging.Filter):
+ def __init__(self, level):
+ self.strlevel = str(level)
+ self.level = stringToLevel(level)
+
+ def __repr__(self):
+ return "%s level >= %s (%d)" % (self.__class__.__name__, self.strlevel, self.level)
+
+ def filter(self, record):
+ return (record.levelno >= self.level)
+
+class LogFilterLTLevel(logging.Filter):
+ def __init__(self, level):
+ self.strlevel = str(level)
+ self.level = stringToLevel(level)
+
+ def __repr__(self):
+ return "%s level < %s (%d)" % (self.__class__.__name__, self.strlevel, self.level)
+
+ def filter(self, record):
+ return (record.levelno < self.level)
+
# Message control functions
#
@@ -175,6 +197,19 @@ def addDefaultlogFilter(handler, cls = BBLogFilter, forcelevel=None):
cls(handler, level, debug_domains)
+def stringToLevel(level):
+ try:
+ return int(level)
+ except ValueError:
+ pass
+
+ try:
+ return getattr(logging, level)
+ except AttributeError:
+ pass
+
+ return getattr(BBLogFormatter, level)
+
#
# Message handling functions
#