From 44bc6e1fe0171af19451b5586f7fdd08853ccf5b Mon Sep 17 00:00:00 2001 From: Tomasz Torcz Date: Thu, 18 Jul 2013 10:21:45 +0200 Subject: [PATCH] =?utf8?q?journalctl:=20add=20=E2=80=9Dshort-iso=E2=80=9D?= =?utf8?q?=20output=20format=20with=20verbose=20ISO8601=20timestamps?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Example: 2013-07-18T10:10:01+0200 sandworm CROND[20957]: (root) CMD (/usr/lib64/sa/sa1 1 1) --- man/journalctl.xml | 12 ++++++++++++ src/journal/journalctl.c | 2 +- src/shared/logs-show.c | 11 +++++++++-- src/shared/output-mode.h | 1 + 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/man/journalctl.xml b/man/journalctl.xml index 65a59ea..da43bf2 100644 --- a/man/journalctl.xml +++ b/man/journalctl.xml @@ -266,6 +266,18 @@ + + + + is very similar + but shows ISO 8601 + wallclock timestamps. + + + + + + diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index 2f043a4..083a597 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -133,7 +133,7 @@ static int help(void) { " -n --lines[=INTEGER] Number of journal entries to show\n" " --no-tail Show all lines, even in follow mode\n" " -r --reverse Show the newest entries first\n" - " -o --output=STRING Change journal output mode (short, short-monotonic,\n" + " -o --output=STRING Change journal output mode (short, short-monotonic, short-iso\n" " verbose, export, json, json-pretty, json-sse, cat)\n" " -x --catalog Add message explanations where available\n" " -l --full Do not ellipsize fields\n" diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index ea47468..bd7363a 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -273,9 +273,14 @@ static int output_short( } t = (time_t) (x / USEC_PER_SEC); - if (strftime(buf, sizeof(buf), "%b %d %H:%M:%S", localtime_r(&t, &tm)) <= 0) { + if (mode == OUTPUT_SHORT_ISO) + r = strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S%z", localtime_r(&t, &tm)); + else + r = strftime(buf, sizeof(buf), "%b %d %H:%M:%S", localtime_r(&t, &tm)); + + if (r <= 0) { log_error("Failed to format time."); - return r; + return -EINVAL; } fputs(buf, f); @@ -798,6 +803,7 @@ static int (*output_funcs[_OUTPUT_MODE_MAX])( [OUTPUT_SHORT] = output_short, [OUTPUT_SHORT_MONOTONIC] = output_short, + [OUTPUT_SHORT_ISO] = output_short, [OUTPUT_VERBOSE] = output_verbose, [OUTPUT_EXPORT] = output_export, [OUTPUT_JSON] = output_json, @@ -1076,6 +1082,7 @@ int show_journal_by_unit( static const char *const output_mode_table[_OUTPUT_MODE_MAX] = { [OUTPUT_SHORT] = "short", [OUTPUT_SHORT_MONOTONIC] = "short-monotonic", + [OUTPUT_SHORT_ISO] = "short-iso", [OUTPUT_VERBOSE] = "verbose", [OUTPUT_EXPORT] = "export", [OUTPUT_JSON] = "json", diff --git a/src/shared/output-mode.h b/src/shared/output-mode.h index 0efd430..4012889 100644 --- a/src/shared/output-mode.h +++ b/src/shared/output-mode.h @@ -24,6 +24,7 @@ typedef enum OutputMode { OUTPUT_SHORT, OUTPUT_SHORT_MONOTONIC, + OUTPUT_SHORT_ISO, OUTPUT_VERBOSE, OUTPUT_EXPORT, OUTPUT_JSON, -- 2.7.4