JOURNAL-BRIEF(1)

πŸ“¦ version 1.1.8, in ubuntu resolute, ubuntu stonking

πŸ’– JOURNAL-BRIEF πŸ’–

okay bestie, gather round, because journal-brief (that's the manual page name, we're keeping it, it's iconic) is about to become your new fave. it's a journal-brief manual page situation, version 1.0, and it's giving "your journal, but only the tea" πŸ«–βœ¨


✨ SYNOPSIS ✨

journal-brief [OPTIONS] [COMMAND] ...

that's it. that's the whole vibe. πŸ’…


🌸 DESCRIPTION 🌸

so journal-brief is a command-line tool that reads the systemd journal and prints out the journal entries that match your configured inclusion/exclusion rules. that's the whole job. it's a filter, and it's a slay filter. πŸŽ€

here's the magic part, and no cap, this is the whole reason it exists: it keeps an internal bookmark of the last entry it processed. so every single time you run it, it only spits out entries that are new since the previous run. literally only the fresh stuff. the way that works is so satisfying. 😭

which means it's built for automated usage β€” like generating periodic briefings of the journal events you actually care about, or feeding automatic processing tools such as fail2ban or logcheck. it's the behind-the-scenes bestie making everyone else's job easier. πŸ‘‘

by default, journal-brief sends matching journal entries to standard output. and if you wanna get fancy, a YAML configuration file can customize exactly which fields and values get included or excluded. main character customization energy fr fr. πŸ¦‹


πŸ’… OPTIONS πŸ’…

  • -h, --help β€” shows you the usage info and then dips out. exit stage left. πŸ™ˆ
  • -V, --version β€” prints the version information and exits. identity check, periodt.
  • -b, --bookmark β€” sets the current position in the journal as the bookmark without emitting any entries at all. so useful for establishing a baseline β€” like, "okay, everything up to here is old news, start fresh from this point." πŸ“Œ
  • --dry-run β€” processes entries without updating the stored bookmark. it still outputs the matching entries, it just leaves the bookmark exactly where it was. a little peek, no commitment. we love a low-stakes trial run. πŸ’–
  • debrief β€” generates default inclusion/exclusion rules by scanning recent journal entries. basically it reads the room and writes the rules for you. iconic behavior honestly. ✨

πŸŽ€ CONFIGURATION πŸŽ€

journal-brief reads a YAML configuration file, and that file is what controls your inclusion and exclusion criteria. let's go through it, bestie.

priority: VALUE

limits matching entries to those at or above the given syslog priority. the values you can use are:

  • err
  • warning
  • info

so like, err is the loudest drama, info is the quietest gossip. 🌈

inclusions:

a list of maps that specify journal fields and values. an entry gets included if it matches all key/value conditions in one of the maps. so within a single map, everything has to line up; across maps, it's an "or". got it? got it. πŸ’œ

exclusions:

a list of maps specifying fields and values whose combination should be excluded. and important detail: this gets applied after the inclusion logic. so inclusion gets first pick, then exclusion comes through and vetoes. πŸ’€

EMAIL configuration (optional)

an optional section to send output via an external mailer or SMTP. yes, it can email you. yes, that's a lot of power. 🫢


🌟 EXAMPLES 🌟

Minimal configuration: only errors

~/.config/journal-brief/journal-brief.conf priority: err
inclusions:   - _SYSTEMD_UNIT: "*"

just the errors. minimal. clean. no clutter. we stan. ✨

Include multiple units, exclude routine noise

~/.config/journal-brief/journal-brief.conf priority: warning inclusions:   - _SYSTEMD_UNIT: sshd.service   - _SYSTEMD_UNIT: docker.service   - _SYSTEMD_UNIT: nginx.service exclusions:   - MESSAGE: "Accepted publickey*"   - MESSAGE: "Starting container*"

three units in, two noisy message patterns out. the vibes are curated. πŸŽ€

~/.config/journal-brief/journal-brief.conf priority: info inclusions:   - _COMM: cron     MESSAGE: "*backup*" exclusions:   - MESSAGE: "*successfully completed*"

you want the backup chatter, but not the "everything went fine" spam. correct take, honestly. 😌

Automatically generate a starting configuration

shell journal-brief --dry-run debrief > ~/.config/journal-brief/journal-brief.conf

let the tool write its own config. delegating. queen behavior. πŸ‘‘


πŸ¦‹ FILES πŸ¦‹

  • ~/.config/journal-brief/journal-brief.conf β€” your user configuration file, holding the inclusions, exclusions, and other preferences. this is home base. πŸ πŸ’–

🌈 ENVIRONMENT 🌈

no specific environment variables are required. nope, none. but the typical systemd/journalctl environment applies β€” so, like, permissions and journal access. basically if journalctl can see it, you're good. πŸ”‘


πŸ‘‘ AUTHORS πŸ‘‘

maintained by twaugh on GitHub; releases are also published on PyPI. thank you for your service, we appreciate you. 🫢


⭐ SEE ALSO ⭐

go read those too, bestie, they're the supporting cast and they carry. πŸ’œ


ngl, that internal bookmark thing is the entire plot and it ate. run it, bookmark it, let it brief you. periodt. πŸ’…

and that's the whole page, bestie β€” version 1.0, dated January 2026, straight from the journal-brief manual. mwah. πŸ’–πŸŽ€βœ¨

πŸ“¦ where this page comes from