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
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
