I am delighted to offer a new beta-release of my free log browser, Consolation, which goes far beyond anything you’re likely to see in Apple’s frail and feeble Console. This release supports the new log keys used in High Sierra 10.13.5, including Signposts, which are a feature of Mojave.
Let me explain a bit more.
As I have just reported here, High Sierra 10.13.5 or earlier brought a substantial change to the content stored in the unified log, and in the ability of the
log command to access it. Included is support for the information required by Signposts, which Apple only announced last week as one of the new features for Mojave.
I’m not sure what support there is in High Sierra or Mojave for third-party software writing Signposts, but several of Apple’s components provided in High Sierra certainly can, and are busily writing them to your log as you read this.
This new version of Consolation supports the additional keys available in the High Sierra log, including
- eventType – normal log entries are logEvent, activities are activityCreateEvent, and Signposts are signpostEvent;
- signpostID – a large integer ID;
- source – this appears unused at present, and set to null;
- activityIdentifier – an integer, normally 0 at present;
- parentActivityIdentifier – an integer, normally 0 at present;
- category – an existing key, normal log entries are assigned strings such as Server, session, libinfo, or memberships. Signposts are assigned performance_instrumentation, and Activities an empty string.
To view these, you will need to run Consolation on High Sierra 10.13.5 or later, or Mojave. Unfortunately, the unified log and
log command in Sierra do not support them (apart from eventType, which appears to have limited support), so this cannot bring Signposts or any of the other new log features to Sierra. Furthermore, if you browse logs captured from High Sierra on a Sierra system, you will be unable to access values for any of those new keys.
I have therefore added support for the new
--signpost command option which presents Signposts in log excerpts, and simple checkboxes to control which types of log message are displayed and exported in CSV format.
You can now, for example, capture an excerpt of the log on High Sierra which contains all Signposts, show only those Signposts in the display, and export then in CSV format ready to import into your favourite spreadsheet.
From that, I exported the Signposts (only) in CSV format, imported them into Numbers, and after tidying up the spreadsheet you can see that some components of High Sierra are still instrumented quite heavily with Signposts.
If your software is able to write Signposts too, it would take little work in Numbers or Excel to analyse your data for performance purposes. You may find that quicker and simpler than building your own custom Instruments in Xcode.
I have built two different versions from the same source code: 3.0b14s was built in Xcode 9 running on Sierra. I have tested it here on Sierra and High Sierra, but not Mojave. It seems fully-functional and well-behaved. I have also built 3.0b14h in the current beta-release of Xcode 10 running on High Sierra. This too appears to work fine in both Sierra and High Sierra, but I have not tested it in Mojave. I would be very grateful for comments on both builds, particularly from Mojave beta, please.
I welcome reports here of how they work in Mojave, any and all other issues, please.