I'm kind of dissapointed that the rest of the world didn't pick logging to a circular memory buffer like varnish does. It's proven extremely useful.
You'll have a full firehose of information when you need it without sacrificing performance. You can set up async processes that pick out the bits you need and persist them to disk.
I suspect this isn't widely used because it relies on POSIX shared memory and support for keeping data structures in SHM isn't widely available.