View app-specific log messages in Terminal
March 29 2018 Update:
When this tip was first posted, it didn't work right: The log command ignored the --start, --end, and --last parameters. Regardless of what you listed for parameters, you'd always get the entire contents of the log file. I'm happy to note that this has been resolved in macOS 10.13.4, as log now functions as expected:
$ log show --last 20s --predicate 'processImagePath CONTAINS[c] "Twitter"' Filtering the log data using "processImagePath CONTAINS[c] "Twitter"" Skipping info and debug messages, pass --info and/or --debug to include. Timestamp Thread Type Activity PID TTL 2018-03-30 09:26:15.357714-0700 0xc88a8 Default 0x0 5075 0 Twitterrific: (CFNetwork) Task <9AD0920A-7AE7-4313-A727-6D34F4BBE38F>.<250> now using Connection 142 2018-03-30 09:26:15.357742-0700 0xc8d7a Default 0x0 5075 0 Twitterrific: (CFNetwork) Task <9AD0920A-7AE7-4313-A727-6D34F4BBE38F>.<250> sent request, body N 2018-03-30 09:26:15.420242-0700 0xc88a8 Default 0x0 5075 0 Twitterrific: (CFNetwork) Task <9AD0920A-7AE7-4313-A727-6D34F4BBE38F>.<250> received response, status 200 content K 2018-03-30 09:26:15.420406-0700 0xc8d7a Default 0x0 5075 0 Twitterrific: (CFNetwork) Task <9AD0920A-7AE7-4313-A727-6D34F4BBE38F>.<250> response ended -------------------------------------------------------------------------------------------------------------------- Log - Default: 4, Info: 0, Debug: 0, Error: 0, Fault: 0 Activity - Create: 0, Transition: 0, Actions: 0 $
This makes it really easy to get just the time slice you need from the overly-long log files. You can use s for seconds, m for minutes, h for hours, and d for days as arguments to these parameters.
This article provides a nice overview on interacting with log and predicates to filter the output—there's a lot you can do to help figure out what might be causing a problem.
And now, here's the rest of the original post…