X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fjournal%2Fjournalctl.c;h=3e5ee1af967dd1244ef4747bb9bd0b253cf2b77a;hp=a6b6e0fbd6a3a150b13ecf75d3beb1fc0ca30206;hb=8725d60ae4f7a8471aa8a0207fa105e335d069a6;hpb=c2373f848dddcc1827cf715c5ef778dc8d475761 diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index a6b6e0fbd..3e5ee1af9 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -31,7 +31,7 @@ #include "log.h" int main(int argc, char *argv[]) { - int r; + int r, i; sd_journal *j = NULL; log_set_max_level(LOG_DEBUG); @@ -46,7 +46,16 @@ int main(int argc, char *argv[]) { goto finish; } - SD_JOURNAL_FOREACH(j) { + for (i = 1; i < argc; i++) { + r = sd_journal_add_match(j, argv[i], strlen(argv[i])); + if (r < 0) { + log_error("Failed to add match: %s", strerror(-r)); + goto finish; + } + } + + SD_JOURNAL_FOREACH_BEGIN(j) { + const void *data; size_t length; char *cursor; @@ -68,9 +77,10 @@ int main(int argc, char *argv[]) { (unsigned long long) realtime, (unsigned long long) monotonic); - SD_JOURNAL_FOREACH_FIELD(j, data, length) + SD_JOURNAL_FOREACH_DATA(j, data, length) printf("\t%.*s\n", (int) length, (const char*) data); - } + + } SD_JOURNAL_FOREACH_END(j); finish: if (j)