Inject taskpid into log records via our log handler
It turns out that while log filters added with addFilter are only associated with that logger, and not its children, handlers are inherited, and handlers can be filters. So, let's add filtering to our existing LogHandler class which dispatches our log records as bitbake events. (Bitbake rev: 0153ace246e7c88366f45c8f035a2b4505a1c115) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
48e567bb47
commit
810e139fd3
|
@ -35,11 +35,6 @@ class NullHandler(logging.Handler):
|
|||
def emit(self, record):
|
||||
pass
|
||||
|
||||
class BBLogRecord(logging.LogRecord):
|
||||
def __init__(self, name, level, fn, lno, msg, args, exc_info, func, extra):
|
||||
self.taskpid = bb.event.worker_pid
|
||||
logging.LogRecord.__init__(self, name, level, fn, lno, msg, args, exc_info, func)
|
||||
|
||||
Logger = logging.getLoggerClass()
|
||||
class BBLogger(Logger):
|
||||
def __init__(self, name):
|
||||
|
@ -47,9 +42,6 @@ class BBLogger(Logger):
|
|||
self.debug = self.bbdebug
|
||||
Logger.__init__(self, name)
|
||||
|
||||
def makeRecord(self, name, lvl, fn, lno, msg, args, exc_info, func=None, extra=None):
|
||||
return BBLogRecord(name, lvl, fn, lno, msg, args, exc_info, func, extra)
|
||||
|
||||
def bbdebug(self, level, msg, *args, **kwargs):
|
||||
return self.log(logging.DEBUG - level - 1, msg, *args, **kwargs)
|
||||
|
||||
|
|
|
@ -384,3 +384,7 @@ class LogHandler(logging.Handler):
|
|||
fire(record, None)
|
||||
if bb.event.useStdout:
|
||||
print(self.format(record))
|
||||
|
||||
def filter(self, record):
|
||||
record.taskpid = worker_pid
|
||||
return True
|
||||
|
|
Loading…
Reference in New Issue