JOURNAL-BRIEF(1)
π 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:
errwarninginfo
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. π
Include entries from cron process related to backups
~/.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 β
journalctl(1)systemd-journal-fields(7)
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
- ubuntu resolute: journal-brief 1.1.8-4 Β· GPL-2.0-or-later
- ubuntu stonking: journal-brief 1.1.8-4 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms