« More on the WebOS | Main | What is research? »

New software: Quicklog

I've finally gotten the gumption and spare time together to release a tiny little logging library I've put together for formatting debugging messages and writing them to disk. It's called Quicklog, and it's aimed at C++ users on Linux.

What's so great about Quicklog? Its interface is very much like C++'s iostreams. If you can work with cout and cerr, you're already familiar with Quicklog's syntax. Many other logging packages use printf-style syntax, and working with that is just painful. My idea is that the easier it is to log, the more logging will be done, and then the easier it'll be to debug the system from the logs later.

Quicklog's other cool feature is that it's, ummm, quick. Especially on slower CPUs, the bottleneck in log writing is converting all those integers and floating point values into ascii representations. I fixed that by splitting the logging task: at runtime, ints and floats get written to disk in binary format, and then later, there's a postprocessing step to translate the binary numbers back to human-readable format. This split reduces logging overhead by about 80% for the workloads I've been using.

You can download Quicklog here. I hope that someone will find it useful, even though it lacks a bunch of features right now.

By the way, Quicklog has no relation to Quickdog, which was a dotcom startup. In the interest of full disclosure, I should say that my old company, 61C Networks, bought Quickdog's LCD projector when Quickdog went bankrupt. Therefore, I'm dedicating this first release to that LCD projector, which was acquired by yet another company after 61C's assets were liquidated.