mirror of
https://github.com/systemd/systemd.git
synced 2025-01-12 13:18:14 +03:00
journalctl: add a marker to log output for reboots
With this we'll print a marker "----- Reboot -----" between two subsequent lines with different boot IDs.
This commit is contained in:
parent
a963990ff4
commit
14a65d65a0
2
TODO
2
TODO
@ -56,8 +56,6 @@ Features:
|
||||
|
||||
* when running as user instance: implicitly default to WorkingDirectory=$HOME for all services.
|
||||
|
||||
* journalctl highlight reboots
|
||||
|
||||
* Merge KillUnit()'s mode and who params into one
|
||||
|
||||
* load-fragment: when loading a unit file via a chain of symlinks
|
||||
|
@ -223,7 +223,7 @@
|
||||
|
||||
<listitem><para>Takes an absolute
|
||||
directory path as argument. If
|
||||
specified will opearte on the
|
||||
specified will operate on the
|
||||
specified journal directory instead of
|
||||
the default runtime and system journal
|
||||
paths.</para></listitem>
|
||||
|
@ -299,6 +299,8 @@ int main(int argc, char *argv[]) {
|
||||
sd_journal *j = NULL;
|
||||
unsigned line = 0;
|
||||
bool need_seek = false;
|
||||
sd_id128_t previous_boot_id;
|
||||
bool previous_boot_id_valid = false;
|
||||
|
||||
log_parse_environment();
|
||||
log_open();
|
||||
@ -390,6 +392,8 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
for (;;) {
|
||||
for (;;) {
|
||||
sd_id128_t boot_id;
|
||||
|
||||
if (need_seek) {
|
||||
r = sd_journal_next(j);
|
||||
if (r < 0) {
|
||||
@ -401,6 +405,16 @@ int main(int argc, char *argv[]) {
|
||||
if (r == 0)
|
||||
break;
|
||||
|
||||
r = sd_journal_get_monotonic_usec(j, NULL, &boot_id);
|
||||
if (r >= 0) {
|
||||
if (previous_boot_id_valid &&
|
||||
!sd_id128_equal(boot_id, previous_boot_id))
|
||||
printf(ANSI_HIGHLIGHT_ON "----- Reboot -----" ANSI_HIGHLIGHT_OFF "\n");
|
||||
|
||||
previous_boot_id = boot_id;
|
||||
previous_boot_id_valid = true;
|
||||
}
|
||||
|
||||
line ++;
|
||||
|
||||
r = output_journal(j, arg_output, line, 0, arg_show_all);
|
||||
|
@ -1397,8 +1397,6 @@ _public_ int sd_journal_get_monotonic_usec(sd_journal *j, uint64_t *ret, sd_id12
|
||||
|
||||
if (!j)
|
||||
return -EINVAL;
|
||||
if (!ret)
|
||||
return -EINVAL;
|
||||
|
||||
f = j->current_file;
|
||||
if (!f)
|
||||
@ -1422,7 +1420,9 @@ _public_ int sd_journal_get_monotonic_usec(sd_journal *j, uint64_t *ret, sd_id12
|
||||
return -ESTALE;
|
||||
}
|
||||
|
||||
*ret = le64toh(o->entry.monotonic);
|
||||
if (ret)
|
||||
*ret = le64toh(o->entry.monotonic);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user