summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2016-04-20 20:09:57 +0200
committerLennart Poettering <lennart@poettering.net>2016-04-22 16:16:59 +0200
commit991e274b61f489e625274254138567c9c81b4c4b (patch)
tree38464ce4173c2e3e1bbff3e5a56bf0eb257128da
parentbb321ed9a33d6c90e2529db86ffabd913805088a (diff)
journalctl: add --no-hostname switch
This suppresses output of the hostname for messages from the local system. Fixes: #2342
-rw-r--r--man/journalctl.xml7
-rw-r--r--src/journal/journalctl.c11
-rw-r--r--src/shared/logs-show.c6
-rw-r--r--src/shared/output-mode.h1
4 files changed, 24 insertions, 1 deletions
diff --git a/man/journalctl.xml b/man/journalctl.xml
index c448e0771b..3efe6ef62a 100644
--- a/man/journalctl.xml
+++ b/man/journalctl.xml
@@ -360,6 +360,13 @@
</varlistentry>
<varlistentry>
+ <term><option>--no-hostname</option></term>
+
+ <listitem><para>Don't show the hostname field of log messages originating from the local host. This switch only
+ has an effect on the <option>short</option> family of output modes (see above).</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><option>-x</option></term>
<term><option>--catalog</option></term>
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
index fd2cb99410..c9a2c3812d 100644
--- a/src/journal/journalctl.c
+++ b/src/journal/journalctl.c
@@ -95,6 +95,7 @@ static bool arg_boot = false;
static sd_id128_t arg_boot_id = {};
static int arg_boot_offset = 0;
static bool arg_dmesg = false;
+static bool arg_no_hostname = false;
static const char *arg_cursor = NULL;
static const char *arg_after_cursor = NULL;
static bool arg_show_cursor = false;
@@ -304,6 +305,7 @@ static void help(void) {
" -a --all Show all fields, including long and unprintable\n"
" -q --quiet Do not show info messages and privilege warning\n"
" --no-pager Do not pipe output into a pager\n"
+ " --no-hostname Suppress output of hostname field\n"
" -m --merge Show entries from all available journals\n"
" -D --directory=PATH Show journal files from directory\n"
" --file=PATH Show journal file\n"
@@ -370,6 +372,7 @@ static int parse_argv(int argc, char *argv[]) {
ARG_VACUUM_SIZE,
ARG_VACUUM_FILES,
ARG_VACUUM_TIME,
+ ARG_NO_HOSTNAME,
};
static const struct option options[] = {
@@ -427,6 +430,7 @@ static int parse_argv(int argc, char *argv[]) {
{ "vacuum-size", required_argument, NULL, ARG_VACUUM_SIZE },
{ "vacuum-files", required_argument, NULL, ARG_VACUUM_FILES },
{ "vacuum-time", required_argument, NULL, ARG_VACUUM_TIME },
+ { "no-hostname", no_argument, NULL, ARG_NO_HOSTNAME },
{}
};
@@ -780,6 +784,10 @@ static int parse_argv(int argc, char *argv[]) {
arg_action = ACTION_LIST_FIELD_NAMES;
break;
+ case ARG_NO_HOSTNAME:
+ arg_no_hostname = true;
+ break;
+
case 'x':
arg_catalog = true;
break;
@@ -2444,7 +2452,8 @@ int main(int argc, char *argv[]) {
arg_full * OUTPUT_FULL_WIDTH |
colors_enabled() * OUTPUT_COLOR |
arg_catalog * OUTPUT_CATALOG |
- arg_utc * OUTPUT_UTC;
+ arg_utc * OUTPUT_UTC |
+ arg_no_hostname * OUTPUT_NO_HOSTNAME;
r = output_journal(stdout, j, arg_output, 0, flags, &ellipsized);
need_seek = true;
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
index 5cfa455e05..cd3d53669c 100644
--- a/src/shared/logs-show.c
+++ b/src/shared/logs-show.c
@@ -373,6 +373,12 @@ static int output_short(
n += strlen(buf);
}
+ if (hostname && (flags & OUTPUT_NO_HOSTNAME)) {
+ /* Suppress display of the hostname if this is requested. */
+ hostname = NULL;
+ hostname_len = 0;
+ }
+
if (hostname && shall_print(hostname, hostname_len, flags)) {
fprintf(f, " %.*s", (int) hostname_len, hostname);
n += hostname_len + 1;
diff --git a/src/shared/output-mode.h b/src/shared/output-mode.h
index 56fd3ba8e3..f37189e57f 100644
--- a/src/shared/output-mode.h
+++ b/src/shared/output-mode.h
@@ -50,6 +50,7 @@ typedef enum OutputFlags {
OUTPUT_BEGIN_NEWLINE = 1 << 6,
OUTPUT_UTC = 1 << 7,
OUTPUT_KERNEL_THREADS = 1 << 8,
+ OUTPUT_NO_HOSTNAME = 1 << 9,
} OutputFlags;
const char* output_mode_to_string(OutputMode m) _const_;