I'm a little worried about how large this is becoming. Can you do some analysis of how this affects code size?

One possible optimization is to have a static structure which describes all the static information, and then pass a pointer to that plus `args`. The `LogRecord` structure would be built in the `liblog` library. This is somewhat more complicated, however, so I'd like to make sure we need an optimization like this beforehand.