[libvirt] [PATCH] libvirt, logging: cleanup VIR_DEBUG0() VIR_INFO0() VIR_WARN0() VIR_ERROR0()

Eric Blake eblake at redhat.com
Wed May 11 14:39:12 UTC 2011


On 05/09/2011 03:24 AM, Lai Jiangshan wrote:
> These VIR_XXXX0 APIs make us confused, use the non-0-suffix APIs instead.
> 
> How these coversions works? The magic is using ##.
> #define high_levle_api(fmt, ...) low_levle_api(fmt, ##__VA_ARGS__)
> When __VA_ARGS__ is empty, "##" will swallow the "," in "fmt," to avoid compile error.
> 
> example: origin				after CPP
> 	high_levle_api("%d", a_int)	low_levle_api("%d", a_int)
> 	high_levle_api("a  string")	low_levle_api("a  string")
> 
> About 400 conversions.
> 
> 8 special conversions:
> VIR_XXXX0("") -> VIR_XXXX(" ") (avoid empty format) 2 conversions

Yuck, that leaves trailing space.  I'd rather have a real message.

> VIR_XXXX0(string_literal_with_%) -> VIR_XXXX(%->%%) 0 conversions

Good that nothing hit this pattern, because my followup patch will
magically transform 1-arg vir_XXXX("xyz") to vir_XXXX("%s", "xyz"), and
any doubled-up %% would thus cause a change in output.

> VIR_XXXX0(non_string_literal) -> VIR_XXXX("%s", non_string_literal) (for security) 6 conversions

Good.

Also, cfg.mk can be simplified (hmm, we don't have any syntax-rules for
VIR_INFO, so I'll do that as a followup).

Here's what I squashed in; I'll wait to push until my followups have
been reviewed.

diff --git i/cfg.mk w/cfg.mk
index 9ee0dd0..1b60282 100644
--- i/cfg.mk
+++ w/cfg.mk
@@ -390,7 +390,6 @@ msg_gen_function += ESX_ERROR
 msg_gen_function += ESX_VI_ERROR
 msg_gen_function += PHYP_ERROR
 msg_gen_function += VIR_ERROR
-msg_gen_function += VIR_ERROR0
 msg_gen_function += VMX_ERROR
 msg_gen_function += XENXS_ERROR
 msg_gen_function += eventReportError
@@ -525,7 +524,7 @@ sc_copyright_format:
 # Some functions/macros produce messages intended solely for developers
 # and maintainers.  Do not mark them for translation.
 sc_prohibit_gettext_markup:
-	@prohibit='\<VIR_(WARN|DEBUG)0? *\(_\('				\
+	@prohibit='\<VIR_(WARN|DEBUG) *\(_\('				\
 	halt='do not mark these strings for translation'		\
 	  $(_sc_search_regexp)

diff --git i/src/qemu/qemu_monitor_json.c w/src/qemu/qemu_monitor_json.c
index 126003f..047a81f 100644
--- i/src/qemu/qemu_monitor_json.c
+++ w/src/qemu/qemu_monitor_json.c
@@ -2529,7 +2529,7 @@ int qemuMonitorJSONInjectNMI(qemuMonitorPtr mon)

     if (qemuMonitorJSONHasError(reply, "CommandNotFound") &&
         qemuMonitorCheckHMP(mon, "inject-nmi")) {
-        VIR_DEBUG0("inject-nmi command not found, trying HMP");
+        VIR_DEBUG("inject-nmi command not found, trying HMP");
         ret = qemuMonitorTextInjectNMI(mon);
     } else {
         ret = qemuMonitorJSONCheckError(cmd, reply);
diff --git i/src/util/event.c w/src/util/event.c
index cfaffc8..11f025b 100644
--- i/src/util/event.c
+++ w/src/util/event.c
@@ -145,7 +145,7 @@ void virEventRegisterImpl(virEventAddHandleFunc
addHandle,
  */
 int virEventRegisterDefaultImpl(void)
 {
-    VIR_DEBUG(" ");
+    VIR_DEBUG("registering default event implementation");

     virResetLastError();

@@ -185,7 +185,7 @@ int virEventRegisterDefaultImpl(void)
  */
 int virEventRunDefaultImpl(void)
 {
-    VIR_DEBUG(" ");
+    VIR_DEBUG("running default event implementation");
     virResetLastError();

     if (virEventPollRunOnce() < 0) {

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110511/9f273558/attachment-0001.sig>


More information about the libvir-list mailing list