Plaintext is not a great format for (system) logs
utcc.utoronto.ca
utcc.utoronto.ca
I think text is really awesome though. You can read it with any editor and there are a zillion easy to learn Linux tools like grep, cut, awk...etc for interactively creating a oneliner in a short amount of time that you can use to get what you want out of the text. I used to have a bunch of those when I was in charge of some applications on a Linux server. Text is very universal and I'm not just talking about log files.
After you agreed on the standard parts timestamp, facility, and level, you'd still need some standard structure for the variant message parts though, which is where json is good: it's arbitrarily deep.
For that matter, journalctl is terrible, cryptic, and difficult to use.
In my opinion, plain text wins for everything, very portable and people can read with very little knowledge.
And yeah, sure, you want to use structured logging. So, in addition to the greppable log message, include a Magic Separator Character (say, \t) that you treat as 'end-of-line' in human-oriented processing, and have your key-value-pair structured data following that for automated tooling to have its way with. Or, be really creative with [key=value] blocks that are both human- and machine-readable.
Some of my most painful logging experiences were having to extract application logs from binary blobs created by a proprietary Windows tool (no, not the main Windows event log: that's bad, but at least documented). Even the most recent versions of the official viewer just crashed, the vendor was not interested in fixing that (since we were not a customer, just a third party in need of log data, but even an offer of a modest payment was met with indifference...), and the actual format turned out to be byzantine beyond words.
So, yeah, give me plain text all day, every day...
perhaps some llm-powered awk command generator would be useful?
The core problem is that log messages themselves almost invariably come with additional metadata, often fairly rich metadata, but if you store things in plain text it's difficult to handle that metadata
So this is wrong: there are few "metadata" with logs : the "metadata" are part of the log, are stored with the log, they are the actual data for which we generated the log.It has nothing to do with "plain text": structured-logging is a thing, and it is plain text.
And writing random english sentences to a mysql database is also a thing, and it is not plain text.
And you can move from one to another, just as you can compress a logfile (which is then no longer plain text) etc.
So the plain text vs binary is a format issue, and the logs' content is another, unrelated topic
So I do not know what's the point here, except saying "journald is awesome", which is just an opinion