journalctl: how to display colors in its output?

20,277

Solution 1

The color support of journalctl is documented in man journalctl:

When outputting to a tty, lines are colored according to priority: lines of level ERROR and higher are colored red; lines of level NOTICE and higher are highlighted; other lines are displayed normally.

That's from systemd 229. As seen in the man page, There are no other built-in color controls for journalctl.

Solution 2

If the original daemon output is already colorized, but the colors are being lost when using journalctl, the --output cat option will restore them. See the manual for more details.

Solution 3

Install ccze, then use it like this:

journalctl -b -k -f | ccze [-A] [-o nolookups]

explanation:

 -A, --raw-ansi
        If one wants to enable raw ANSI color sequences instead of using curses, this option does just that.
 -o, --options OPTIONS...
        However,  lookups  is  an  option that might be better to disable. When on, ccze will try to look up usernames, service
        names, and lots of other stuff, which will slow down coloring a great deal. If one is piping a long log  through  ccze,
        this option might be turned off [nolookups]  to speed up the process.

Solution 4

I use ccze for all the logs.

Example for jornalctl with color.

journalctl -b -k -f | ccze
journalctl -b -k -f | ccze -A

Other examples.

tail -f /etc/nginx/logs/access.log | ccze
tail -f /etc/unbound/unbound.log | ccze

Exporting logs

to export the log to HTML and save it to /root/syslog.html:

ccze -h -o nolookups /root/syslog.html 

I hope you find it useful.

Solution 5

Seeking long for the answer, I actually figured out what works for me (with Rails logs and journalctl) – just add --all option.

journalctl -u puma --all

From manpage:

   -a, --all
      Show all fields in full, even if they include unprintable characters 
      or are very long. By default, fields with unprintable characters 
      are abbreviated as "blob data". (Note that the pager may escape 
      unprintable characters again.)
Share:
20,277

Related videos on Youtube

xuhdev
Author by

xuhdev

Interested in everything. See my open source contributions here.

Updated on September 18, 2022

Comments

  • xuhdev
    xuhdev over 1 year

    The output of journalctl really looks messy without colors. Is it possible to add colors to its output? On my system it seems only important lines are highlighted. Even dmesg can output with color by adding the --color switch!

  • Frederik
    Frederik about 7 years
    Please add some more information and examples to your answer. ccze seems like a nice utility but some useful example commands would improve your answer
  • chicks
    chicks about 7 years
    Please edit this into your other answer on this question. This seems to be a continuation and shouldn't stand on its own.
  • Henrik Pingel
    Henrik Pingel about 7 years
    Please edit this into your other answer on this question. This seems to be a continuation and shouldn't stand on its own.
  • Nam G VU
    Nam G VU almost 6 years
    Can have color with ccze as discussed below serverfault.com/a/836777
  • Nam G VU
    Nam G VU almost 6 years
    This should be the selected answer.
  • jorijnsmit
    jorijnsmit over 5 years
    Using different prio does the trick for me. Customised my terminal to display bold in a different color from normal. This gives three colors: prio0,1,2,3 prio 4,5 and prio6,7. Does the trick for me!
  • fiatjaf
    fiatjaf over 5 years
    This is the correct answer, please.
  • MarcH
    MarcH almost 4 years
    In 2020 there is now, from man journalctl: SYSTEMD_COLORS=true journalctl --boot > log.ansi
  • MarcH
    MarcH almost 4 years
    While ccze is interesting, this answer drops the colors from journalctl and then asks ccze to guess different colors. The journalctl flags are unrelated to the question. Look elsewhere.
  • lubosz
    lubosz over 3 years
    I came here to find this answer.
  • ProGirlXOXO
    ProGirlXOXO over 3 years
    This does not work for me and the original logs do have some color and bold formatting. What might I be doing wrong?