|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
From 730836403aee5f5bb998e6e3622ea7068fce0699 Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
From: Harald Hoyer <harald@redhat.com>
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
Date: Tue, 19 Aug 2014 11:27:34 +0200
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
Subject: [PATCH] journalctl: add "-t --identifier=STRING" option
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
This turns journalctl to the counterpart of systemd-cat.
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
Messages sent with
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
systemd-cat --identifier foo --prioritiy debug
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
can now be shown with
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
journalctl --identifier foo --prioritiy debug
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
"--identifier" is not merged with "--unit" to make a clear
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
distinction between syslog and systemd units.
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
syslog identifiers can be chosen freely by anyone.
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
---
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
man/journalctl.xml | 14 ++++++++++++++
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
src/journal/journalctl.c | 43 ++++++++++++++++++++++++++++++++++++++++++-
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
2 files changed, 56 insertions(+), 1 deletion(-)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
diff --git a/man/journalctl.xml b/man/journalctl.xml
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
index e10918a9c6..d4e031619a 100644
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
--- a/man/journalctl.xml
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+++ b/man/journalctl.xml
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
@@ -498,6 +498,20 @@
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
</varlistentry>
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
<varlistentry>
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ <term><option>-t</option></term>
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ <term><option>--identifier=<replaceable>SYSLOG_IDENTIFIER</replaceable>|<replaceable>PATTERN</replaceable></option></term>
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ <listitem><para>Show messages for the
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ specified syslog identifier
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ <replaceable>SYSLOG_IDENTIFIER</replaceable>, or
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ for any of the messages with a <literal>SYSLOG_IDENTIFIER</literal>
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ matched by <replaceable>PATTERN</replaceable>.</para>
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ <para>This parameter can be specified
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ multiple times.</para></listitem>
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ </varlistentry>
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ <varlistentry>
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
<term><option>-u</option></term>
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
<term><option>--unit=<replaceable>UNIT</replaceable>|<replaceable>PATTERN</replaceable></option></term>
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
index 5c4a71d618..f3680d1ce2 100644
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
--- a/src/journal/journalctl.c
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+++ b/src/journal/journalctl.c
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
@@ -89,6 +89,7 @@ static bool arg_force = false;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
#endif
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
static usec_t arg_since, arg_until;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
static bool arg_since_set = false, arg_until_set = false;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+static char **arg_syslog_identifier = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
static char **arg_system_units = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
static char **arg_user_units = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
static const char *arg_field = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
@@ -180,6 +181,7 @@ static void help(void) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
" -k --dmesg Show kernel message log from the current boot\n"
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
" -u --unit=UNIT Show data only from the specified unit\n"
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
" --user-unit=UNIT Show data only from the specified user session unit\n"
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ " -t --identifier=STRING Show only messages with the specified syslog identifier\n"
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
" -p --priority=RANGE Show only messages within the specified priority range\n"
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
" -e --pager-end Immediately jump to end of the journal in the pager\n"
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
" -f --follow Follow the journal\n"
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
@@ -276,6 +278,7 @@ static int parse_argv(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
{ "file", required_argument, NULL, ARG_FILE },
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
{ "root", required_argument, NULL, ARG_ROOT },
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
{ "header", no_argument, NULL, ARG_HEADER },
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ { "identifier", required_argument, NULL, 't' },
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
{ "priority", required_argument, NULL, 'p' },
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
{ "setup-keys", no_argument, NULL, ARG_SETUP_KEYS },
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
{ "interval", required_argument, NULL, ARG_INTERVAL },
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
@@ -304,7 +307,7 @@ static int parse_argv(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
assert(argc >= 0);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
assert(argv);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
- while ((c = getopt_long(argc, argv, "hefo:aln::qmb::kD:p:c:u:F:xrM:", options, NULL)) >= 0)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ while ((c = getopt_long(argc, argv, "hefo:aln::qmb::kD:p:c:t:u:F:xrM:", options, NULL)) >= 0)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
switch (c) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
@@ -590,6 +593,12 @@ static int parse_argv(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
arg_until_set = true;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
break;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ case 't':
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ r = strv_extend(&arg_syslog_identifier, optarg);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ if (r < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ return log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ break;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
case 'u':
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
r = strv_extend(&arg_system_units, optarg);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
if (r < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
@@ -1212,6 +1221,32 @@ static int add_priorities(sd_journal *j) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
return 0;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
}
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+static int add_syslog_identifier(sd_journal *j) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ int r;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ char **i;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ assert(j);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ STRV_FOREACH(i, arg_syslog_identifier) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ char *u;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ u = strappenda("SYSLOG_IDENTIFIER=", *i);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ r = sd_journal_add_match(j, u, 0);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ if (r < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ return r;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ r = sd_journal_add_disjunction(j);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ if (r < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ return r;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ }
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ r = sd_journal_add_conjunction(j);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ if (r < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ return r;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ return 0;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+}
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
static int setup_keys(void) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
#ifdef HAVE_GCRYPT
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
size_t mpk_size, seed_size, state_size, i;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
@@ -1705,6 +1740,12 @@ int main(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
return EXIT_FAILURE;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
}
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ r = add_syslog_identifier(j);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ if (r < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ log_error("Failed to add filter for syslog identifiers: %s", strerror(-r));
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ return EXIT_FAILURE;
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+ }
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
r = add_priorities(j);
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
if (r < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
62fe94 |
log_error("Failed to add filter for priorities: %s", strerror(-r));
|