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:
Chris Larson 2011-01-10 09:20:50 -07:00 committed by Richard Purdie
parent 48e567bb47
commit 810e139fd3
2 changed files with 4 additions and 8 deletions

View File

@ -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)

View File

@ -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