[Spice-devel] [spice-common v3] use specific subdomains for better filtering

Victor Toso victortoso at redhat.com
Sat Mar 12 14:32:01 UTC 2016


Hi! I've rebased this series and pushed to my remote branch in
freedesktop [0] [1]. I'll try to clarify the ideia for working on this
and if it does not get any positive feedback I'll take it as something
not interesting to have...

[0] (common) https://cgit.freedesktop.org/~victortoso/spice-common/log/?h=logs
[1] (gtk) https://cgit.freedesktop.org/~victortoso/spice-gtk/log/?h=logs
fdo: https://bugs.freedesktop.org/show_bug.cgi?id=91838

So, first of all, I don't want to introduce something that everybody
need to understand in order to get proper debug. The main idea is able
to filter in/out stuff that you don't want to see without the need to
| grep -v and | grep -i it.

With that said, SPICE_DEBUG=6 should work to get G_LOG_LEVEL_DEBUG of
all code that uses spice logging functions.

With all debug enable you would see all lines prefixed with
"[subdomain-name]" so, in case you don't want to see it (filter out),
you could:

$SPICE_DEBUG=6,subdomain-name:- remote-viwer ...

And voilĂ , nothing from it will be showed as '-' is the same as '0'
which is *no debug*. The opposite of it would be '*' or '6'.
* Both '-' and 0 would work and "none" as well;
* Both '*' and 6 would work and "debug" as well;

In case you only want to see some debug info, you could do something
like:

SPICE_DEBUG=audio:*,playback:*

This would show spice-audio, spice-gstaduio, spice-pulse,
channel-playback debugs and nothing else.

Q: Do you want this just to avoid grep?
A: No! We should not avoid inserting debug into the code because it
could get verbose, we should smart handling it with something like this
IMHO. We have a few #ifdef #DEBUG_THIS which is not useful when asking
debug info to reporter in open bugs.

I really think that this could be improved a lot yet but it would need a
proper discussion. If this does not seem useful, then it's fine :)

Another misc info:
* I did not try this with spice server yet;
* We can use spice logging tools or glib ones, I choosed spice first as
  I think we can have better control with it;
* I did not try to fix the spice-common tests yet;

changes from v2:
* rebased to latest version upstream
* Kept usage of SPICE_LOG_DOMAIN instead of G_LOG_DOMAIN that I
  previously proposed
* moved some changes that should be in another commit
* changed the static variable from SPICE_LOG_DOMAIN to
  SPICE_LOG_SUB_DOMAIN

changes from v1:
* Use one-static-per-file approach to define each subdomain. This is
  similar to how libvirt does and seems much cleaner.
* Removed f(printf) debugs
* Created subdomains for spice-common as well as now this is a must.

[spice-common]
Victor Toso (6):
  log: simplify log defines with SPICE_LOG
  log: include message log level for parity with glib
  log: allow filtering logs with subdomains
  log: create specific subdomains for filtering
  log: Disable multiple domains in Spice
  don't break the build with this wip patches

 common/canvas_base.c  |   3 +-
 common/canvas_utils.c |   1 +
 common/log.c          | 174 ++++++++++++++++++++++++++++++++++++++++++++++----
 common/log.h          |  87 ++++++++++++++++---------
 common/lz.c           |   2 +
 common/marshaller.c   |   1 +
 common/mem.c          |   1 +
 common/pixman_utils.c |   1 +
 common/quic.c         |   4 +-
 common/region.c       |   2 +
 common/rop3.c         |   4 +-
 common/ssl_verify.c   |   3 +-
 tests/test-logging.c  |   3 +-
 13 files changed, 238 insertions(+), 48 deletions(-)

[spice-gtk]
Victor Toso (13):
  log: use glib logging on testing tools
  log: use spice_debug instead of SPICE_DEBUG
  log: nitpick at channel name in CHANNEL_DEBUG
  log: remove unused SPICE_DEBUG
  log: use spice_debug instead of g_debug
  log: use spice_warning instead of g_warning
  log: use spice_critical instead of g_critical
  log: use plain spice_debug instead of VNC_DEBUG
  log: use spice logging instead of (f)printf
  log: use spice_error instead of g_error
  Update spice-common submodule
  log: create subdomains for spice-gtk
  log: remove dup __FUNCTION__ argument from logs

 spice-common                           |   2 +-
 src/Makefile.am                        |   3 +
 src/bio-gio.c                          |   8 +-
 src/channel-base.c                     |  14 +--
 src/channel-cursor.c                   |  30 +++---
 src/channel-display-mjpeg.c            |   4 +-
 src/channel-display.c                  |  58 +++++-----
 src/channel-inputs.c                   |   4 +-
 src/channel-main.c                     |  83 +++++++-------
 src/channel-playback.c                 |  20 ++--
 src/channel-port.c                     |   2 +
 src/channel-record.c                   |  10 +-
 src/channel-smartcard.c                |   6 +-
 src/channel-usbredir.c                 |   8 +-
 src/channel-webdav.c                   |  16 +--
 src/coroutine_gthread.c                |   8 +-
 src/coroutine_ucontext.c               |   7 +-
 src/coroutine_winfibers.c              |   9 +-
 src/decode-glz.c                       |  10 +-
 src/decode-jpeg.c                      |   6 +-
 src/decode-zlib.c                      |   6 +-
 src/desktop-integration.c              |  10 +-
 src/giopipe.c                          |  11 +-
 src/map-file                           |   1 +
 src/smartcard-manager.c                |  20 ++--
 src/spice-audio.c                      |   4 +-
 src/spice-channel-priv.h               |   2 +-
 src/spice-channel.c                    | 191 ++++++++++++++++++---------------
 src/spice-client-glib-usb-acl-helper.c |   9 +-
 src/spice-grabsequence.c               |   4 +-
 src/spice-gstaudio.c                   |  48 +++++----
 src/spice-gtk-session.c                |  48 +++++----
 src/spice-option.c                     |   4 +-
 src/spice-pulse.c                      | 142 ++++++++++++------------
 src/spice-session.c                    |  60 ++++++-----
 src/spice-uri.c                        |   2 +
 src/spice-util.c                       |   8 +-
 src/spice-util.h                       |   6 --
 src/spice-widget-egl.c                 |  18 ++--
 src/spice-widget.c                     |  96 +++++++++--------
 src/spicy-connect.c                    |   2 +-
 src/spicy-screenshot.c                 |  10 +-
 src/spicy-stats.c                      |  12 +--
 src/spicy.c                            |  34 +++---
 src/usb-device-manager.c               |  64 +++++------
 src/usb-device-widget.c                |   7 +-
 src/usbutil.c                          |   4 +-
 src/vmcstream.c                        |  14 +--
 src/vncdisplaykeymap.c                 |  46 ++++----
 src/win-usb-dev.c                      |  18 ++--
 src/win-usb-driver-install.c           |  46 ++++----
 51 files changed, 675 insertions(+), 580 deletions(-)

-- 
2.5.0



More information about the Spice-devel mailing list