[Spice-devel] [PATCH spice-common] common/log.h: add spice_client_error

Alon Levy alevy at redhat.com
Thu Jul 5 04:17:13 PDT 2012


On Thu, Jul 05, 2012 at 01:10:44PM +0200, Marc-André Lureau wrote:
> On Thu, Jul 5, 2012 at 11:38 AM, Alon Levy <alevy at redhat.com> wrote:
> > To be used to mark client protocol violations, more easily greppable.
> > ---
> >  common/log.h |   11 +++++++++++
> >  1 file changed, 11 insertions(+)
> >
> > diff --git a/common/log.h b/common/log.h
> > index 37c491f..df8a756 100644
> > --- a/common/log.h
> > +++ b/common/log.h
> > @@ -28,6 +28,10 @@ SPICE_BEGIN_DECLS
> >  #define SPICE_LOG_DOMAIN "Spice"
> >  #endif
> >
> > +#ifndef SPICE_CLIENT_LOG_DOMAIN
> > +#define SPICE_CLIENT_LOG_DOMAIN "Spice(client)"
> > +#endif
> > +
> >  #define SPICE_STRINGIFY(x) SPICE_STRINGIFY_ARG (x)
> >  #define SPICE_STRINGIFY_ARG(x) #x
> >
> > @@ -85,6 +89,13 @@ void spice_log(const char *log_domain,
> >  } SPICE_STMT_END
> >  #endif
> >
> > +#ifndef spice_client_error
> > +#define spice_client_error(format, ...) SPICE_STMT_START {              \
> > +    spice_log(SPICE_CLIENT_LOG_DOMAIN,SPICE_LOG_LEVEL_ERROR, SPICE_STRLOC, \
> > +              __FUNCTION__, format, ## __VA_ARGS__);                    \
> > +} SPICE_STMT_END
> > +#endif
> > +
> 
> Well, the idea is that you can define SPICE_LOG_DOMAIN before
> including this file, either in your code, or in the Makefile, adding a
> CFLAGS such as -DSPICE_LOG_DOMAIN=SpiceClient.
> 
> This way you don't need to introduce "domain specific" functions etc..
> 
> (just like  with glib logging)

That doesn't allow me to have in the same compilation unit (red_worker.c) two
domains. Also, you can't define macros with macros, so I'm not sure what
better way there is.

> 
> cheers
> -- 
> Marc-André Lureau


More information about the Spice-devel mailing list