All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] debug logging (was: Re: [PATCHv2 3/4] qxl: add debug_cs and cmdlog_cs)
Date: Mon, 02 May 2011 11:02:22 +0200	[thread overview]
Message-ID: <4DBE731E.1050905@redhat.com> (raw)
In-Reply-To: <20110429221944.GD13837@amber.local>

   Hi,

> The bigger hack called "qxl_terse" I didn't even send :) ok, so now I get
> to either keep this in my closet or think of how to do a minimal acceptable
> qemu logging infrastructure that would let me register a logging handle and
> use that to redirect to a chardev (they would all default to being muxed over
> stdio?)
>
> QemuLogger *qemu_create_logger(const char *logger_id);
>   - logger_id is used to match to the chardev given on the command line
>   - need to prevent collision, so probably easier to have a logger_id be an int
>   and have that looked up to a string in an automatically generated table?

What I have in mind is a simple dbg_print() function, integrated with 
qdev and simliar to what the linux kernel has, i.e. something like:

int dbg_print(DeviceState *qdev, int loglevel, const char *fmt, ...);

This can basically be used that as drop-in replacement for the 
fprintf(stderr, fmt, ...) style found in many drivers.

dbg_print would get the driver name via qdev->info->name, get the 
instance via qdev->parent_bus->info->get_dev_path(), get a timestamp, 
then create a standard prefix for all messages for easy grepping.  It 
would also check qdev->loglevel to figure whenever the message should be 
printed or not.  All devices get a property to set qdev->loglevel, so 
all logging can be configured at runtime per device.

Messages go to stderr by default.  A -debug switch could be added to 
route them another way.

Comments in the idea?

cheers,
   Gerd

  reply	other threads:[~2011-05-02  9:02 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-28  8:29 [Qemu-devel] [PATCHv2 0/4] qxl: debug related fixes Alon Levy
2011-04-28  8:29 ` [Qemu-devel] [PATCHv2 1/4] qxl: interface_get_command: fix reported mode Alon Levy
2011-04-29 12:01   ` Gerd Hoffmann
2011-04-29 21:53     ` Alon Levy
2011-04-28  8:29 ` [Qemu-devel] [PATCHv2 2/4] qxl: add mode to debugprint on destroy primary Alon Levy
2011-04-29 12:01   ` Gerd Hoffmann
2011-04-29 21:54     ` Alon Levy
2011-04-28  8:29 ` [Qemu-devel] [PATCHv2 3/4] qxl: add debug_cs and cmdlog_cs Alon Levy
2011-04-29 12:09   ` Gerd Hoffmann
2011-04-29 22:19     ` Alon Levy
2011-05-02  9:02       ` Gerd Hoffmann [this message]
2011-05-02 10:12         ` [Qemu-devel] debug logging (was: Re: [PATCHv2 3/4] qxl: add debug_cs and cmdlog_cs) Alon Levy
2011-05-02 10:25           ` [Qemu-devel] debug logging Gerd Hoffmann
2011-05-02 10:33             ` Alon Levy
2011-05-02 10:37               ` Jan Kiszka
2011-05-02 11:00                 ` Markus Armbruster
2011-05-02 11:50                   ` Alon Levy
2011-05-02 12:43                     ` Jan Kiszka
2011-05-02 13:04                       ` Alon Levy
2011-05-02 14:09                       ` Paolo Bonzini
2011-04-28  8:29 ` [Qemu-devel] [PATCHv2 4/4] qxl: allow QXL_IO_LOG also in vga Alon Levy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DBE731E.1050905@redhat.com \
    --to=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.