I’ve just been debugging a problem with the pulse-agent on a mac. One of the big questions we had was: where the heck are the logs? The pulse-agent is managed by launchd. Apparently, this logs all stdout and stderr via ASL.
But what’s ASL? Apparently, it’s the Apple System Log. There’s a nice summary on Domain of the Bored. He also gives the key hint: you can use syslog(1) to read the binary ASL files.
I didn’t delve too deeply into the flags. It appeared that just running syslog
spat out all the information I required. But, it comes out encoded like cat -v
. But you can pipe it through unvis(1) to clean that up.
$ syslog | unvis | less
Normally, Console.app
would take care of all this transparently. But when you’re ssh’d into a mac, that’s not an option. So it’s good to know about syslog(1).
Looking closer at the flags, you can say syslog -E safe
in place of piping through unvis(1).