And...it's in the App Store!
If you use OSLog and hate Console.app, you might enjoy Otter.
If you hate OSLog, you might be able to convince me to add support for your log system too.
https://apps.apple.com/us/app/otter-log-console/id6479258228
There are plenty of things it doesn’t do in version 1, but I wanted to get the basics down first.
For example, it doesn’t live stream logs.
There are two reasons for this, one of them being that I didn’t have time.
Version 1 also doesn’t have support for anything other than OSLog archives.
I’d love to load plain text files and other formats, but that’ll be tricky to get right, so I didn’t attempt it for the first release.
If you have another log format you want supported, please reach out.
For now, if you want to load OSLogs, this thing kicks ass.
@_tim______ Will have a look. Cool stuff. . Might help debug our stuff which is spitting lots of OSLog messages.
@_tim______ wow nice work making this app perform so quickly !
@dcm thanks!
Probably over 50% of my time working on this thing was on loading and filter performance. I learned a lot about processing very very large arrays.
@juanarzola glad you like it! Sometimes it’s helpful to be able to see the state of the world at a high level.
I’m lucky that Swift Charts made it really easy.
@_tim______ Fantastic release! You will have a _very_ large fanbase in the #MacAdmins community with this.
Immediate feature requests:
- interacting with Global / Processes on the side would be lovely if it could automatically add to the current filter and focus it down to the subsystem/process
- ability to export and import filters to share with others
- log repack-like ability to use existing filter as predicate to save filtered logarchive
@mikeymikey well hello #MacAdmins, enjoy!
These feature requests are great. I actually almost made the first one (and it’s still in my note of possible future features!)
Filter import/export would be cool. I toyed with the idea of converting to/from a predicate string too.
The filtered log archive idea sounds really cool, but I’m not aware of a way to create a logarchive file with the public API. I might explore the idea though.
Thanks for the suggestions!
@_tim______ Yeah for the last one, unfortunately you'd probably have to wrap the CLI
@_tim______ @numist well done sir, this looks pretty
@_tim______ The app asks for a file/folder. What am I supposed to open? It doesn't allow me to open .log files. I thought it would some the same logs as Console.app but maybe I misunderstood
Currently it only works with logarchive files. You can get one from a sysdiagnose or by running “log collect” in terminal. I’d like to add support for plaintext files though.
@_tim______ I hate iOS in general.
@_tim______ looks cool! Might give it a try soon.
@_tim______ this looks amazing! saved filters alone
@_tim______ Where is that predicate UI from? Is that SwiftUI or custom?
Custom built in SwiftUI. It was pretty fun to make, but also frustrating. There are a few fun bugs in there too.
@_tim______ Impressive!
@_tim______ It's very promising, for a first version ! Congratulations.
Just as a note:
- there is (very likely) a leak somewhere (see the screenshot - sorry, I forgot to take a memgraph. I was just wandering on a collected log, scrolling, and clicking. I don't think I kept the app open for long)
- I have a colleague who had a crash (I will try to get the crash log).
macOS 14.4.1 / M1 Max.
Thanks for reporting the leak! I’ve received a similar report, and I’m pretty sure what it is.
Kind of embarrassing, but I believe basically all the logs are held in memory after you close the window.
You might be able to work around this by quitting and relaunching. I’m working on a fix though.
@_tim______ Finally had a chance to use this for a Situation and it was great. Thank you!
@numist Nice! Tell your friends!