On 03/07/2014 10:43 AM, Eric Blake wrote: > On 03/03/2014 12:18 PM, Daniel P. Berrange wrote: >> Any source file which calls the logging APIs now needs >> to have a VIR_LOG_INIT("source.name") declaration at >> the start of the file. This provides a static variable >> of the virLogSource type. >> >> >> #define VIR_FROM_THIS VIR_FROM_CONF >> >> +VIR_LOG_INIT("daemon.libvirtd-config"); > > Idea for a followup patch - instead of having VIR_FROM_THIS hard-coded > as a macro, could we instead inline it as an argument to VIR_LOG_INIT() > which populates another member of the static struct? Then all the error > logging functions would read it out of the struct as a single argument, > instead of the current setup of getting an argument for both the struct > and the VIR_FROM_THIS macro expansion as two separate arguments. If you > respin the patch series, it might be nice to do the all-file-touching > patch only once, rather than having to do it in two pieces. Hmm. I noticed that VIR_INSERT_ELEMENT also relies on VIR_FROM_THIS, but in doing so, it loses the virLogSelf of the caller as part of calling into the viralloc.c with its own virLogSelf. But if we rework VIR_INSERT_ELEMENT to pass virLogSelf instead of VIR_FROM_THIS, and rework viralloc.c to reuse the passed in context instead of its own virLogSelf, we could report errors on behalf of the caller - which may or may not be a good thing for purposes of deciding what log filters to enable when inspecting an OOM failure. So maybe the idea of dropping VIR_FROM_THIS is not worthwhile after all. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list