From: Eduardo Habkost <ehabkost@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Lukáš Doktor" <ldoktor@redhat.com>,
"Daniel P. Berrange" <berrange@redhat.com>,
"Cleber Rosa" <crosa@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Fam Zheng" <famz@redhat.com>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>
Subject: [Qemu-devel] [PATCH v2 2/3] scripts: Remove debug parameter from QEMUMonitorProtocol
Date: Thu, 5 Oct 2017 14:20:12 -0300 [thread overview]
Message-ID: <20171005172013.3098-3-ehabkost@redhat.com> (raw)
In-Reply-To: <20171005172013.3098-1-ehabkost@redhat.com>
Use logging module for the QMP debug messages. The only scripts
that set debug=True are iotests.py and guestperf/engine.py, and
they already call logging.basicConfig() to set up logging.
Scripts that don't configure logging are safe as long as they
don't need debugging output, because debug messages don't trigger
the "No handlers could be found for logger" message from the
Python logging module.
Scripts that already configure logging but don't use debug=True
(e.g. scripts/vm/basevm.py) will get QMP debugging enabled for
free.
Cc: "Alex Bennée" <alex.bennee@linaro.org>
Cc: Fam Zheng <famz@redhat.com>
Cc: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
Changes v1 -> v2:
* Actually remove debug parameter from method definition
(Fam Zheng)
* Fix "<<<" vs ">>>" confusion
(Fam Zheng)
* Remove "import sys" line
(Lukáš Doktor)
---
scripts/qemu.py | 3 +--
scripts/qmp/qmp.py | 16 +++++++---------
2 files changed, 8 insertions(+), 11 deletions(-)
diff --git a/scripts/qemu.py b/scripts/qemu.py
index c9a106fbce..f6d2e68627 100644
--- a/scripts/qemu.py
+++ b/scripts/qemu.py
@@ -177,8 +177,7 @@ class QEMUMachine(object):
def _pre_launch(self):
self._qmp = qmp.qmp.QEMUMonitorProtocol(self._monitor_address,
- server=True,
- debug=self._debug)
+ server=True)
def _post_launch(self):
self._qmp.accept()
diff --git a/scripts/qmp/qmp.py b/scripts/qmp/qmp.py
index ef12e8a1a0..07c9632e9e 100644
--- a/scripts/qmp/qmp.py
+++ b/scripts/qmp/qmp.py
@@ -11,7 +11,7 @@
import json
import errno
import socket
-import sys
+import logging
class QMPError(Exception):
@@ -32,12 +32,14 @@ class QMPTimeoutError(QMPError):
class QEMUMonitorProtocol(object):
+ #: Logger object for debugging messages
+ logger = logging.getLogger('QMP')
#: Socket's error class
error = socket.error
#: Socket's timeout
timeout = socket.timeout
- def __init__(self, address, server=False, debug=False):
+ def __init__(self, address, server=False):
"""
Create a QEMUMonitorProtocol class.
@@ -51,7 +53,6 @@ class QEMUMonitorProtocol(object):
"""
self.__events = []
self.__address = address
- self._debug = debug
self.__sock = self.__get_sock()
self.__sockfile = None
if server:
@@ -83,8 +84,7 @@ class QEMUMonitorProtocol(object):
return
resp = json.loads(data)
if 'event' in resp:
- if self._debug:
- print >>sys.stderr, "QMP:<<< %s" % resp
+ self.logger.debug("<<< %s", resp)
self.__events.append(resp)
if not only_event:
continue
@@ -164,8 +164,7 @@ class QEMUMonitorProtocol(object):
@return QMP response as a Python dict or None if the connection has
been closed
"""
- if self._debug:
- print >>sys.stderr, "QMP:>>> %s" % qmp_cmd
+ self.logger.debug(">>> %s", qmp_cmd)
try:
self.__sock.sendall(json.dumps(qmp_cmd))
except socket.error as err:
@@ -173,8 +172,7 @@ class QEMUMonitorProtocol(object):
return
raise socket.error(err)
resp = self.__json_read()
- if self._debug:
- print >>sys.stderr, "QMP:<<< %s" % resp
+ self.logger.debug("<<< %s", resp)
return resp
def cmd(self, name, args=None, cmd_id=None):
--
2.13.6
next prev parent reply other threads:[~2017-10-05 17:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-05 17:20 [Qemu-devel] [PATCH v2 0/3] scripts: Remove 'debug' parameter from QEMUMachine & QEMUMonitorProtocol Eduardo Habkost
2017-10-05 17:20 ` [Qemu-devel] [PATCH v2 1/3] guestperf: Configure logging on all shell frontends Eduardo Habkost
2017-10-07 6:53 ` Lukáš Doktor
2017-10-05 17:20 ` Eduardo Habkost [this message]
2017-10-07 8:26 ` [Qemu-devel] [PATCH v2 2/3] scripts: Remove debug parameter from QEMUMonitorProtocol Lukáš Doktor
2017-10-10 2:49 ` Eduardo Habkost
2017-10-10 16:03 ` Lukáš Doktor
2017-10-05 17:20 ` [Qemu-devel] [PATCH v2 3/3] scripts: Remove debug parameter from QEMUMachine Eduardo Habkost
2017-10-07 8:34 ` Lukáš Doktor
2017-10-10 2:50 ` Eduardo Habkost
2017-10-10 16:01 ` Lukáš Doktor
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=20171005172013.3098-3-ehabkost@redhat.com \
--to=ehabkost@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=berrange@redhat.com \
--cc=crosa@redhat.com \
--cc=f4bug@amsat.org \
--cc=famz@redhat.com \
--cc=ldoktor@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).