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
The color support of
journalctl is documented in
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
If the original daemon output is already colorized, but the colors are being lost when using
--output cat option will restore them. See the manual for more details.
Install ccze, then use it like this:
journalctl -b -k -f | ccze [-A] [-o nolookups]
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.
ccze for all the logs.
Example for jornalctl with color.
journalctl -b -k -f | ccze
journalctl -b -k -f | ccze -A
tail -f /etc/nginx/logs/access.log | ccze
tail -f /etc/unbound/unbound.log | ccze
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.
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
-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.)