From: Michael Tremer Date: Fri, 30 Apr 2021 15:25:30 +0000 (+0000) Subject: builder: Add a simple console log handler X-Git-Tag: 0.9.28~1285^2~170 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=23f323870cee469b13e537dc6d64e10b0f9cbfac;p=pakfire.git builder: Add a simple console log handler This is quite similar to the stream handler but writes error messages to stderr and everything else to stdout. Signed-off-by: Michael Tremer --- diff --git a/src/pakfire/builder.py b/src/pakfire/builder.py index 737568f97..9b3e2ccf9 100644 --- a/src/pakfire/builder.py +++ b/src/pakfire/builder.py @@ -21,6 +21,7 @@ import glob import os +import sys import uuid from . import _pakfire @@ -122,9 +123,8 @@ class Builder(object): l.setLevel(logging.DEBUG) # Print everything to the console - l.addHandler( - logging.StreamHandler(), - ) + console = ConsoleHandler() + l.addHandler(console) # If we have a log file, we write INFO and higher level messages to it # using the build formatter which adds a timestamp @@ -260,3 +260,19 @@ class BuilderContext(object): # Enter the shell self.pakfire.execute(["/usr/bin/bash", "--login"], environ=self.environ, enable_network=True, interactive=True) + + +class ConsoleHandler(logging.Handler): + """ + This simply writes everything to the console it receives. + """ + def emit(self, record): + try: + msg = self.format(record) + + if record.levelno >= logging.ERROR: + sys.stderr.write("%s\n" % msg) + else: + sys.stdout.write("%s\n" % msg) + except Exception: + self.handleError(record)