diff options
author | Lennart Poettering <lennart@poettering.net> | 2012-07-26 16:50:35 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2012-07-26 16:56:21 +0200 |
commit | 498261871dfa2a930ec84b13a176e3bdc43aa212 (patch) | |
tree | 842bc005ca763ddc075ded82b0b74ec80f35d05e /src/journal/journalctl.c | |
parent | 46b0d922256b62bc8291951d9868c243ced80c9a (diff) |
journalctl: hightlight log lines by priority
warn/notice = bright white
< error = red
Diffstat (limited to 'src/journal/journalctl.c')
-rw-r--r-- | src/journal/journalctl.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index c924afbccc..abcfabe75d 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -198,6 +198,21 @@ static int parse_argv(int argc, char *argv[]) { return 1; } +static bool on_tty(void) { + static int t = -1; + + /* Note that this is invoked relatively early, before we start + * the pager. That means the value we return reflects whether + * we originally were started on a tty, not if we currently + * are. But this is intended, since we want colour and so on + * when run in our own pager. */ + + if (_unlikely_(t < 0)) + t = isatty(STDOUT_FILENO) > 0; + + return t; +} + static int generate_new_id128(void) { sd_id128_t id; int r; @@ -397,6 +412,7 @@ int main(int argc, char *argv[]) { goto finish; } + on_tty(); have_pager = !arg_no_pager && !arg_follow && pager_open(); if (arg_output == OUTPUT_JSON) { @@ -407,8 +423,10 @@ int main(int argc, char *argv[]) { for (;;) { for (;;) { sd_id128_t boot_id; - int flags = (arg_show_all*OUTPUT_SHOW_ALL | - have_pager*OUTPUT_FULL_WIDTH); + int flags = + arg_show_all * OUTPUT_SHOW_ALL | + have_pager * OUTPUT_FULL_WIDTH | + on_tty() * OUTPUT_COLOR; if (need_seek) { r = sd_journal_next(j); |