diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/journal/journalctl.c | 2 | ||||
-rw-r--r-- | src/shared/logs-show.c | 11 | ||||
-rw-r--r-- | src/shared/output-mode.h | 1 |
3 files changed, 11 insertions, 3 deletions
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index 2f043a48d5..083a597116 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 ea4746879b..bd7363aa82 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 0efd430c5d..4012889b65 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, |