Re: [systemd-devel] [PATCH] journalctl: make --utc work everywhere
On Fri, 03.10.14 09:51, Jan Synacek (jsyna...@redhat.com) wrote: The --utc option was introduced by commit 9fd290443f5f99fca0dcd4216b1de70f7d3b8db1. Howerver, the implementation was incomplete. --- src/journal/journalctl.c | 14 +++--- src/shared/logs-show.c | 2 +- src/shared/time-util.c | 19 +++ src/shared/time-util.h | 3 ++- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index 395f85c..816934e 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -890,8 +890,8 @@ static int list_boots(sd_journal *j) { printf(% *i SD_ID128_FORMAT_STR %s—%s\n, w, i - count + 1, SD_ID128_FORMAT_VAL(id-id), - format_timestamp(a, sizeof(a), id-first), - format_timestamp(b, sizeof(b), id-last)); + format_timestamp_internal(a, sizeof(a), id-first, arg_utc), + format_timestamp_internal(b, sizeof(b), id-last, arg_utc)); } return 0; @@ -1502,8 +1502,8 @@ static int verify(sd_journal *j) { if (arg_verify_key JOURNAL_HEADER_SEALED(f-header)) { if (validated 0) { log_info(= Validated from %s to %s, final %s entries not sealed., - format_timestamp(a, sizeof(a), first), - format_timestamp(b, sizeof(b), validated), + format_timestamp_internal(a, sizeof(a), first, arg_utc), + format_timestamp_internal(b, sizeof(b), validated, arg_utc), format_timespan(c, sizeof(c), last validated ? last - validated : 0, 0)); } else if (last 0) log_info(= No sealing yet, %s of entries not sealed., @@ -1898,11 +1898,11 @@ int main(int argc, char *argv[]) { if (r 0) { if (arg_follow) printf(-- Logs begin at %s. --\n, - format_timestamp(start_buf, sizeof(start_buf), start)); + format_timestamp_internal(start_buf, sizeof(start_buf), start, arg_utc)); else printf(-- Logs begin at %s, end at %s. --\n, - format_timestamp(start_buf, sizeof(start_buf), start), - format_timestamp(end_buf, sizeof(end_buf), end)); + format_timestamp_internal(start_buf, sizeof(start_buf), start, arg_utc), + format_timestamp_internal(end_buf, sizeof(end_buf), end, arg_utc)); } } diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index d5d9d09..e30e686 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -447,7 +447,7 @@ static int output_verbose( } fprintf(f, %s [%s]\n, -format_timestamp_us(ts, sizeof(ts), realtime), +format_timestamp_us(ts, sizeof(ts), realtime, flags OUTPUT_UTC), cursor); JOURNAL_FOREACH_DATA_RETVAL(j, data, length, r) { diff --git a/src/shared/time-util.c b/src/shared/time-util.c index 066ef97..09f4a21 100644 --- a/src/shared/time-util.c +++ b/src/shared/time-util.c @@ -152,7 +152,7 @@ struct timeval *timeval_store(struct timeval *tv, usec_t u) { return tv; } -char *format_timestamp(char *buf, size_t l, usec_t t) { +char *format_timestamp_internal(char *buf, size_t l, usec_t t, bool utc) { struct tm tm; time_t sec; @@ -164,13 +164,21 @@ char *format_timestamp(char *buf, size_t l, usec_t t) { sec = (time_t) (t / USEC_PER_SEC); -if (strftime(buf, l, %a %Y-%m-%d %H:%M:%S %Z, localtime_r(sec, tm)) = 0) +if (utc) +gmtime_r(sec, tm); +else +localtime_r(sec, tm); +if (strftime(buf, l, %a %Y-%m-%d %H:%M:%S %Z, tm) = 0) return NULL; return buf; } -char *format_timestamp_us(char *buf, size_t l, usec_t t) { +char *format_timestamp(char *buf, size_t l, usec_t t) { +return format_timestamp_internal(buf, l, t, false); +} + +char *format_timestamp_us(char *buf, size_t l, usec_t t, bool utc) { struct tm tm; time_t sec; @@ -181,7 +189,10 @@ char *format_timestamp_us(char *buf, size_t l, usec_t t) { return NULL; sec = (time_t) (t / USEC_PER_SEC); -
Re: [systemd-devel] [PATCH] journalctl: make --utc work everywhere
Lennart Poettering lenn...@poettering.net writes: On Fri, 03.10.14 09:51, Jan Synacek (jsyna...@redhat.com) wrote: The --utc option was introduced by commit 9fd290443f5f99fca0dcd4216b1de70f7d3b8db1. Howerver, the implementation was incomplete. --- src/journal/journalctl.c | 14 +++--- src/shared/logs-show.c | 2 +- src/shared/time-util.c | 19 +++ src/shared/time-util.h | 3 ++- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index 395f85c..816934e 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -890,8 +890,8 @@ static int list_boots(sd_journal *j) { printf(% *i SD_ID128_FORMAT_STR %s—%s\n, w, i - count + 1, SD_ID128_FORMAT_VAL(id-id), - format_timestamp(a, sizeof(a), id-first), - format_timestamp(b, sizeof(b), id-last)); + format_timestamp_internal(a, sizeof(a), id-first, arg_utc), + format_timestamp_internal(b, sizeof(b), id-last, arg_utc)); } return 0; @@ -1502,8 +1502,8 @@ static int verify(sd_journal *j) { if (arg_verify_key JOURNAL_HEADER_SEALED(f-header)) { if (validated 0) { log_info(= Validated from %s to %s, final %s entries not sealed., - format_timestamp(a, sizeof(a), first), - format_timestamp(b, sizeof(b), validated), + format_timestamp_internal(a, sizeof(a), first, arg_utc), + format_timestamp_internal(b, sizeof(b), validated, arg_utc), format_timespan(c, sizeof(c), last validated ? last - validated : 0, 0)); } else if (last 0) log_info(= No sealing yet, %s of entries not sealed., @@ -1898,11 +1898,11 @@ int main(int argc, char *argv[]) { if (r 0) { if (arg_follow) printf(-- Logs begin at %s. --\n, - format_timestamp(start_buf, sizeof(start_buf), start)); + format_timestamp_internal(start_buf, sizeof(start_buf), start, arg_utc)); else printf(-- Logs begin at %s, end at %s. --\n, - format_timestamp(start_buf, sizeof(start_buf), start), - format_timestamp(end_buf, sizeof(end_buf), end)); + format_timestamp_internal(start_buf, sizeof(start_buf), start, arg_utc), + format_timestamp_internal(end_buf, sizeof(end_buf), end, arg_utc)); } } diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index d5d9d09..e30e686 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -447,7 +447,7 @@ static int output_verbose( } fprintf(f, %s [%s]\n, -format_timestamp_us(ts, sizeof(ts), realtime), +format_timestamp_us(ts, sizeof(ts), realtime, flags OUTPUT_UTC), cursor); JOURNAL_FOREACH_DATA_RETVAL(j, data, length, r) { diff --git a/src/shared/time-util.c b/src/shared/time-util.c index 066ef97..09f4a21 100644 --- a/src/shared/time-util.c +++ b/src/shared/time-util.c @@ -152,7 +152,7 @@ struct timeval *timeval_store(struct timeval *tv, usec_t u) { return tv; } -char *format_timestamp(char *buf, size_t l, usec_t t) { +char *format_timestamp_internal(char *buf, size_t l, usec_t t, bool utc) { struct tm tm; time_t sec; @@ -164,13 +164,21 @@ char *format_timestamp(char *buf, size_t l, usec_t t) { sec = (time_t) (t / USEC_PER_SEC); -if (strftime(buf, l, %a %Y-%m-%d %H:%M:%S %Z, localtime_r(sec, tm)) = 0) +if (utc) +gmtime_r(sec, tm); +else +localtime_r(sec, tm); +if (strftime(buf, l, %a %Y-%m-%d %H:%M:%S %Z, tm) = 0) return NULL; return buf; } -char *format_timestamp_us(char *buf, size_t l, usec_t t) { +char *format_timestamp(char *buf, size_t l, usec_t t) { +return format_timestamp_internal(buf, l, t, false); +} + +char *format_timestamp_us(char *buf, size_t l, usec_t t, bool utc) { struct tm tm; time_t sec; @@ -181,7 +189,10 @@ char *format_timestamp_us(char *buf, size_t l, usec_t t) { return NULL;
[systemd-devel] [PATCH] journalctl: make --utc work everywhere
The --utc option was introduced by commit 9fd290443f5f99fca0dcd4216b1de70f7d3b8db1. Howerver, the implementation was incomplete. --- src/journal/journalctl.c | 14 +++--- src/shared/logs-show.c | 2 +- src/shared/time-util.c | 19 +++ src/shared/time-util.h | 3 ++- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index 395f85c..816934e 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -890,8 +890,8 @@ static int list_boots(sd_journal *j) { printf(% *i SD_ID128_FORMAT_STR %s—%s\n, w, i - count + 1, SD_ID128_FORMAT_VAL(id-id), - format_timestamp(a, sizeof(a), id-first), - format_timestamp(b, sizeof(b), id-last)); + format_timestamp_internal(a, sizeof(a), id-first, arg_utc), + format_timestamp_internal(b, sizeof(b), id-last, arg_utc)); } return 0; @@ -1502,8 +1502,8 @@ static int verify(sd_journal *j) { if (arg_verify_key JOURNAL_HEADER_SEALED(f-header)) { if (validated 0) { log_info(= Validated from %s to %s, final %s entries not sealed., - format_timestamp(a, sizeof(a), first), - format_timestamp(b, sizeof(b), validated), + format_timestamp_internal(a, sizeof(a), first, arg_utc), + format_timestamp_internal(b, sizeof(b), validated, arg_utc), format_timespan(c, sizeof(c), last validated ? last - validated : 0, 0)); } else if (last 0) log_info(= No sealing yet, %s of entries not sealed., @@ -1898,11 +1898,11 @@ int main(int argc, char *argv[]) { if (r 0) { if (arg_follow) printf(-- Logs begin at %s. --\n, - format_timestamp(start_buf, sizeof(start_buf), start)); + format_timestamp_internal(start_buf, sizeof(start_buf), start, arg_utc)); else printf(-- Logs begin at %s, end at %s. --\n, - format_timestamp(start_buf, sizeof(start_buf), start), - format_timestamp(end_buf, sizeof(end_buf), end)); + format_timestamp_internal(start_buf, sizeof(start_buf), start, arg_utc), + format_timestamp_internal(end_buf, sizeof(end_buf), end, arg_utc)); } } diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index d5d9d09..e30e686 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -447,7 +447,7 @@ static int output_verbose( } fprintf(f, %s [%s]\n, -format_timestamp_us(ts, sizeof(ts), realtime), +format_timestamp_us(ts, sizeof(ts), realtime, flags OUTPUT_UTC), cursor); JOURNAL_FOREACH_DATA_RETVAL(j, data, length, r) { diff --git a/src/shared/time-util.c b/src/shared/time-util.c index 066ef97..09f4a21 100644 --- a/src/shared/time-util.c +++ b/src/shared/time-util.c @@ -152,7 +152,7 @@ struct timeval *timeval_store(struct timeval *tv, usec_t u) { return tv; } -char *format_timestamp(char *buf, size_t l, usec_t t) { +char *format_timestamp_internal(char *buf, size_t l, usec_t t, bool utc) { struct tm tm; time_t sec; @@ -164,13 +164,21 @@ char *format_timestamp(char *buf, size_t l, usec_t t) { sec = (time_t) (t / USEC_PER_SEC); -if (strftime(buf, l, %a %Y-%m-%d %H:%M:%S %Z, localtime_r(sec, tm)) = 0) +if (utc) +gmtime_r(sec, tm); +else +localtime_r(sec, tm); +if (strftime(buf, l, %a %Y-%m-%d %H:%M:%S %Z, tm) = 0) return NULL; return buf; } -char *format_timestamp_us(char *buf, size_t l, usec_t t) { +char *format_timestamp(char *buf, size_t l, usec_t t) { +return format_timestamp_internal(buf, l, t, false); +} + +char *format_timestamp_us(char *buf, size_t l, usec_t t, bool utc) { struct tm tm; time_t sec; @@ -181,7 +189,10 @@ char *format_timestamp_us(char *buf, size_t l, usec_t t) { return NULL; sec = (time_t) (t / USEC_PER_SEC); -localtime_r(sec, tm); +if (utc) +gmtime_r(sec, tm); +else +localtime_r(sec, tm); if (strftime(buf, l, %a %Y-%m-%d %H:%M:%S, tm) = 0)
Re: [systemd-devel] [PATCH] journalctl: make --utc work everywhere
On Fri, Oct 03, 2014 at 09:51:33AM +0200, Jan Synacek wrote: The --utc option was introduced by commit 9fd290443f5f99fca0dcd4216b1de70f7d3b8db1. Howerver, the implementation was incomplete. --- src/journal/journalctl.c | 14 +++--- src/shared/logs-show.c | 2 +- src/shared/time-util.c | 19 +++ src/shared/time-util.h | 3 ++- 4 files changed, 25 insertions(+), 13 deletions(-) Applied. Zbyszek ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel