Can I somehow make journalctl print log levels next to actual messages?

I have found the -p option but that is not what I'm looking for, I want to see both errors and warnings but I want to be able to tell them apart.

The only thing I have found is this from 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.

This is a nice start, but I would still like to tell apart all 8 levels, not aggregate them in just three.

1 Answer 1


The one option is to use output formatting options. For example journalctl -o verbose will show you all data connected to a particular entry. Example:

Wed 2017-02-08 21:06:27.524361 EET [s=f689734c6c674cfd98a49e66c3349fdd;i=42c;b=01111969442644239da701153bd49c37;m=23e9195;t=548098fc53333;x=c943c53e7411726]
    MESSAGE=Reached target Timers.
    _CMDLINE=/usr/lib/systemd/systemd --user

Here field PRIORITY actually points to a message level (in this particular case it's INFO level). Levels map in this way:

0: emerg
1: alert
2: crit
3: err
4: warning
5: notice
6: info
7: debug

I don't think you can avoid other metadata and only leave message level (correct me if I'm wrong) without some kind of post-processing (custom shell script etc).

  • 1
    See an answer to this question as well: serverfault.com/questions/740081/…
    – ddnomad
    Dec 2, 2017 at 19:11
  • I feared I would have to write scripts for it if I really wanted it, but this actually simplifies things a lot. It just seems weird that there is no particular order of the fields and some messages have it differently
    – Ordoshsen
    Dec 2, 2017 at 19:50
  • @Ordoshsen I guess some fields are optional and so on. Yes, after your question I also wonder why it's not a simple flag or something.
    – ddnomad
    Dec 2, 2017 at 19:53
  • @Ordoshsen - not on a systemd machine right now but anyway... I'd use something like journalctl -b -o json | jq ... i.e. use json output and pipe that to jq to extract only the stuff you need (like PRIORITY, TIMESTAMP, MESSAGE). I guess you could also try to do it via python-systemd Dec 2, 2017 at 19:58
  • 1
    Building on @don_crissti's comment, the following prints the priority level, command, time, and the message: journalctl --boot -o json | jq -r '"Priority: " + .PRIORITY + " on " + .SYSLOG_TIMESTAMP + "command: " + ._CMDLINE + ": " + .MESSAGE' Sep 9, 2021 at 18:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.