[libvirt] [PATCH 2/7] Add accessors for logging filters and outputs

Daniel P. Berrange berrange at redhat.com
Tue Oct 6 09:00:55 UTC 2009


On Mon, Oct 05, 2009 at 05:29:34PM -0400, Amy Griffis wrote:
> Daniel P. Berrange wrote:  [Mon Oct 05 2009, 08:51:00AM EDT]
> > On Sun, Oct 04, 2009 at 03:28:46PM -0400, Amy Griffis wrote:
> > > When configuring logging settings, keep more information about the
> > > output destination. Add accessors to retrieve the filter and output
> > > settings in the original string form; this to be used to set up
> > > environment for a child process that also logs. Open output files
> > > O_APPEND so child can also write -- was there a reason to truncate
> > > them?
> > 
> > I don't think it really matters - APPEND is fine
> > 
> > > Note this patch changes the API for virLogDefineOutput(), which is
> > > part of the internal libvirt API, but is currently only used within
> > > logging.c.
> > 
> > > @@ -107,12 +114,15 @@ typedef void (*virLogCloseFunc) (void *data);
> > >  
> > >  extern int virLogGetNbFilters(void);
> > >  extern int virLogGetNbOutputs(void);
> > > +extern int virLogGetFilters(virBufferPtr);
> > > +extern int virLogGetOutputs(virBufferPtr);
> > 
> > Having looked at the wway the next patch uses these, I think it'd be
> > nicer to change the contract to just be
> > 
> >    extern char *virLogGetFilters(void);
> >    extern char *virLogGetOutputs(void);
> 
> Heh, that's how I wrote it the first time. Then I changed it to
> make use of the virBuffer API, and tried to follow precedent with
> the rest of libvirt. The code is not really doing much with the
> string, maybe virBuffer is overkill?

The general rule to try & follow is that if you just have a single
printf style call to make, then use  virAsprintf. If you have several
printf/strcat calls to make, then use virBuffer. 

In this particular case, its fine to use virBuffer for your internal
impl - I just thing its better to not include it in the public API,
convert the virBuffer into a char * for the return value

Regards,
Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list