LOGBOOK

HELP

1 / 25
Other keys: showSpace: good1-4: rate0: skip5: flag6: invert

Question

What are the two main logging systems in modern Linux?

Answer

systemd-journald (binary, structured) and rsyslog (plain-text files in /var/log) — usually running side by side.

Messages flow into systemd-journald (binary indexed DB, read via journalctl); journald feeds rsyslog, which writes plain-text /var/log files.

* journald collects into a binary indexed journal (queried with journalctl); rsyslog reads it and writes portable plain-text /var/log files — most systems run both. *

Linux has two parallel approaches to collecting log messages, and on a modern distro both are typically active at once:

System Storage Format Tool
systemd-journald Binary database Structured, indexed journalctl
rsyslog Text files in /var/log Plain text less, tail, grep

Why two systems? journald is the newer, central piece of systemd. Every message it receives is stored with rich metadata attached — timestamp, PID, the originating unit, the syslog priority — so you can filter precisely (journalctl -u sshd -p err) instead of grepping text. The trade-off: the journal is a binary database, so you can't cat it; you need journalctl.

How they cooperate: journald collects first. rsyslog then reads from the journal (or its own socket) and writes plain-text files like /var/log/messages. Those text files are easy to grep, tail, ship to a central log server, or feed to old tooling that predates systemd. So journald gives you structured querying; rsyslog gives you portable, greppable, forwardable text — and most systems keep both.

Tip: If cat-ing a log file gives binary garbage, you're looking at the journal — use journalctl instead.

Go deeper:

  • doc systemd (Wikipedia) — journald as the append-only binary logging daemon, beside traditional syslog.
or press any other key