On Thu, 2007-05-10 at 00:38 +0100, John O'Hara wrote: > Fancy backends? > > Its "only" logging - I've found the entire world resolves down to files and > syslog; any fanciness tends to go the way of the dinosaur by being too > complex for joe average </speaking-from-bitter-experience> > > With files (pipes) and syslog its amazing what you can do. > > I do like the rlog idea -- seems very "dtrace" in its conception. Cool, but > too cool for its own good? > As you say, thread nastiness may await where a hardware platform cant > replace a function pointer in one atomic memory write.
Yup, I've decided going for simplicity and replacability. Simple one-macro QPID_LOG API with two initial implementations, rlog and braindead global trace level int to keep Apache happy (rlog is LGPL.) We can replace/extend the set of logging options any time. Both of these provide the minimal if (int/pointer-compare) {} overhead for disabled log statements. The pantheios API is dead clever but it's overhead for unlogged calls is no better, it has a bizzaro build system and hasn't been packaged in a form we could depend on so would be work to integrate. Its formatting performance for logged calls is better but right now I want to get something working ASAP that won't kill performance with logging off and we can improve later if need be.