Next Weeks on My Mac: Where to go with the log?

Consolation was born out of LogLogger, which was born as a quick AppleScript hack to regain access to Sierra’s log, which was (and still is) denied by Console.


I’ll never forget the day that I first installed Sierra and opened Console. When you’ve spent a lot of the last fifteen years studying OS X logs and getting readers to send you log excerpts so that you can diagnose their problems, Sierra’s Console was a real shock. There was no past until you opened the app, and as log entries kept scrolling past there was just a feeling of welling panic.


The joy of LogLogger is that anyone competent at AppleScript can modify the source and turn it into whatever they like. But it was crude, and no match for even a novice wielding the log command in Terminal.


Now with Consolation 2.3, I am happier that it not only does most of what log show can do, but covers some of the other functionality built into the log command, and more besides. If you want to import log extracts into a database or spreadsheet, its ability to convert to CSV format goes well beyond anything that you can accomplish in Terminal alone.

I have been thinking about Consolation 3 for some time now, and think that it is time to tackle Sierra’s unified log’s biggest problem: obtaining the log entries which you want. Because there is so much material written to the log, even when you know roughly what you are looking for, it can be a great challenge to find it.

log show support for search or filter predicates is part of the solution, but by no means a complete answer. Predicates can narrow down the tens of thousands of entries collected over a few minutes, but are not an efficient means of systematically searching through log entries. Each log show command takes a little time to return its log extract, so performing repeated searches as you’re trying to hone in on a problem is often a ponderous process.

When I was developing The Time Machine Mechanic (T2M2), I realised that I had to use a different set of tools in order to analyse what was happening in the log. Search predicates do the coarse filtering, then the app analyses the message text in that selection of log entries.

This is the sort of process which I want to offer in Consolation, as I think it will greatly assist in log analysis.

Another important issue which I need to address is making it easier to access often-used predicates. At present, through its default settings, Consolation allows you to store and recall just a single predicate. For someone who might use a dozen or more predicates quite regularly, that is of very little help. Many users would be helped by a library of customisable predicates, which could extend beyond the limited forms which can be generated in Consolation at present.

I would like to address that by introducing a new property list file in which users can maintain their own custom predicates, which can be used through a popup menu. This will require a predicate editor, most appropriately placed in a new app Preferences dialog, perhaps.

The final area which I would like to develop is in the information which is displayed for each entry, the fields. Although it might be a good longer-term goal to allow the user complete control over the fields to be displayed, in the shorter-term there are better ways of presenting log data than the three basic formats supported by log show, hence in Consolation.

There are two other issues which have been raised: analysing live entries as they are collected, and reading tracev3 files.

I seldom use Console, but think that it now does a reasonable job for those who want to view log entries live, as they are collected. Because they require very different tools from those currently in Consolation, and seem well-supported by Console, I would rather not attempt that in version 3.

tracev3 files are a serious problem for many users who are unable to acquire complete logarchives. Unfortunately, the tracev3 file format is proprietary to Apple, binary, and currently closed. Trying to work it out would require a lot of effort, when I would rather be improving the tools in Consolation. Apple may yet publish its details, in which case I will do my utmost to support it, but for the time being Consolation will not support tracev3 files. Sorry.

Over the coming weeks, I will be implementing these changes in Consolation 3, and will post beta-test versions here for you to try out. I am particularly keen to get your feedback and opinions, please: although I want Consolation 3 to do certain tasks for me, I would really like it to be your solution too. And yes, it will remain free and freely distributable.