From 5ec76417764e19486261fb8e38e8e71b28185b37 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Mon, 3 Jun 2013 18:28:12 -0400 Subject: systemctl: limit logs in status to current boot Also reworded a few debug messages for brevity, and added a log statement which prints out the filter at debug level: Journal filter: (((UNIT=sys-module-configfs.device AND _PID=1) OR (COREDUMP_UNIT=sys-module-configfs.device AND MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1) OR _SYSTEMD_UNIT=sys-module-configfs.device) AND _BOOT_ID=4e3c518ab0474c12ac8de7896fe6b154) --- src/shared/logs-show.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/shared/logs-show.c') diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index 116dc8a36c..79a977c156 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -931,6 +931,33 @@ int add_matches_for_user_unit(sd_journal *j, const char *unit, uid_t uid) { return r; } +int add_match_this_boot(sd_journal *j) { + char match[9+32+1] = "_BOOT_ID="; + sd_id128_t boot_id; + int r; + + assert(j); + + r = sd_id128_get_boot(&boot_id); + if (r < 0) { + log_error("Failed to get boot id: %s", strerror(-r)); + return r; + } + + sd_id128_to_string(boot_id, match + 9); + r = sd_journal_add_match(j, match, strlen(match)); + if (r < 0) { + log_error("Failed to add match: %s", strerror(-r)); + return r; + } + + r = sd_journal_add_conjunction(j); + if (r < 0) + return r; + + return 0; +} + int show_journal_by_unit( FILE *f, const char *unit, @@ -957,6 +984,10 @@ int show_journal_by_unit( if (r < 0) return r; + r = add_match_this_boot(j); + if (r < 0) + return r; + if (system) r = add_matches_for_unit(j, unit); else @@ -964,6 +995,8 @@ int show_journal_by_unit( if (r < 0) return r; + log_debug("Journal filter: %s", journal_make_match_string(j)); + r = show_journal(f, j, mode, n_columns, not_before, how_many, flags); if (r < 0) return r; -- cgit v1.2.3-54-g00ecf