From: Michael Tremer Date: Thu, 31 Aug 2023 04:18:05 +0000 (+0000) Subject: build: Implement custom logging that shows build time X-Git-Tag: 0.9.29~36 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8899d1360a189a21439c6adacae3f2f306140e18;p=pakfire.git build: Implement custom logging that shows build time Fixes: #13250 - log: Add timestamp for each log line Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/build.c b/src/libpakfire/build.c index a6c71ed0c..194a8a638 100644 --- a/src/libpakfire/build.c +++ b/src/libpakfire/build.c @@ -1393,6 +1393,28 @@ ERROR: return r; } +static int pakfire_build_log_callback(struct pakfire* pakfire, + void* data, int priority, const char* line, size_t length) { + struct pakfire_build* build = data; + char buffer[128]; + int r; + + // Get the runtime of the build + const time_t t = pakfire_build_duration(build); + if (t < 0) + return t; + + // Format the timestamp + r = pakfire_string_format(buffer, "%8ld", t); + if (r < 0) + return r; + + // Pass the message to the upstream logger + pakfire_log_condition(pakfire, priority, 0, "[%s] %s", buffer, line); + + return 0; +} + /* Sets up a new jail for this build */ @@ -1406,6 +1428,9 @@ static int pakfire_build_setup_jail(struct pakfire_build* build) { return r; } + // Configure our custom logging callback + pakfire_jail_set_log_callback(build->jail, pakfire_build_log_callback, build); + // Connect the jail to our cgroup r = pakfire_jail_set_cgroup(build->jail, build->cgroup); if (r) {