WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] libxl: hide internal logging from client

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] libxl: hide internal logging from client
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 30 Dec 2009 05:40:15 -0800
Delivery-date: Wed, 30 Dec 2009 05:40:24 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1262176999 0
# Node ID 411a5b79605017b88ce77dbc5f00220956b5597f
# Parent  3e4051dbfd34ced8a9fdc14c4c7905f46a93d94a
libxl: hide internal logging from client

reimplement simple logging in xl, the XL_LOG facilities are a
means for the library to communicate back to the client, not
for a logging library that may be redundant with what the client
use.

Signed-off-by: Vincent Hanquez <vincent.hanquez@xxxxxxxxxxxxx>
---
 tools/libxl/libxl.h          |   21 ---------------------
 tools/libxl/libxl_internal.h |   22 ++++++++++++++++++++++
 tools/libxl/xl.c             |   27 +++++++++++++++++++++------
 3 files changed, 43 insertions(+), 27 deletions(-)

diff -r 3e4051dbfd34 -r 411a5b796050 tools/libxl/libxl.h
--- a/tools/libxl/libxl.h       Wed Dec 30 12:42:41 2009 +0000
+++ b/tools/libxl/libxl.h       Wed Dec 30 12:43:19 2009 +0000
@@ -22,8 +22,6 @@
 #include <xs.h>
 
 #include "xen_uuid.h"
-
-#define XL_LOGGING_ENABLED
 
 typedef void (*libxl_log_callback)(void *userdata, int loglevel, const char 
*file,
                                    int line, const char *func, char *s);
@@ -230,25 +228,6 @@ typedef struct  {
 #define ERROR_NOMEM (-1032)
 #define ERROR_INVAL (-1245)
 
-/* logging */
-void xl_logv(struct libxl_ctx *ctx, int errnoval, int loglevel, const char 
*file, int line, const char *func, char *fmt, va_list al);
-void xl_log(struct libxl_ctx *ctx, int errnoval, int loglevel, const char 
*file, int line, const char *func, char *fmt, ...);
-
-#ifdef XL_LOGGING_ENABLED
-#define XL_LOG(ctx, loglevel, _f, _a...)   xl_log(ctx, loglevel, -1, __FILE__, 
__LINE__, __func__, _f, ##_a)
-#define XL_LOG_ERRNO(ctx, loglevel, _f, _a...)   xl_log(ctx, loglevel, errno, 
__FILE__, __LINE__, __func__, _f, ##_a)
-#define XL_LOG_ERRNOVAL(ctx, errnoval, loglevel, _f, _a...)   xl_log(ctx, 
loglevel, errnoval, __FILE__, __LINE__, __func__, _f, ##_a)
-#else
-#define XL_LOG(ctx, loglevel, _f, _a...)
-#define XL_LOG_ERRNO(ctx, loglevel, _f, _a...)
-#define XL_LOG_ERRNOVAL(ctx, loglevel, errnoval, _f, _a...)
-#endif
-
-#define XL_LOG_DEBUG 3
-#define XL_LOG_INFO 2
-#define XL_LOG_WARNING 1
-#define XL_LOG_ERROR 0
-
 /* context functions */
 int libxl_ctx_init(struct libxl_ctx *ctx);
 int libxl_ctx_free(struct libxl_ctx *ctx);
diff -r 3e4051dbfd34 -r 411a5b796050 tools/libxl/libxl_internal.h
--- a/tools/libxl/libxl_internal.h      Wed Dec 30 12:42:41 2009 +0000
+++ b/tools/libxl/libxl_internal.h      Wed Dec 30 12:43:19 2009 +0000
@@ -35,6 +35,28 @@
 #define QEMU_SIGNATURE "QemuDeviceModelRecord"
 
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+
+#define XL_LOGGING_ENABLED
+
+#ifdef XL_LOGGING_ENABLED
+#define XL_LOG(ctx, loglevel, _f, _a...)   xl_log(ctx, loglevel, -1, __FILE__, 
__LINE__, __func__, _f, ##_a)
+#define XL_LOG_ERRNO(ctx, loglevel, _f, _a...)   xl_log(ctx, loglevel, errno, 
__FILE__, __LINE__, __func__, _f, ##_a)
+#define XL_LOG_ERRNOVAL(ctx, errnoval, loglevel, _f, _a...)   xl_log(ctx, 
loglevel, errnoval, __FILE__, __LINE__, __func__, _f, ##_a)
+#else
+#define XL_LOG(ctx, loglevel, _f, _a...)
+#define XL_LOG_ERRNO(ctx, loglevel, _f, _a...)
+#define XL_LOG_ERRNOVAL(ctx, loglevel, errnoval, _f, _a...)
+#endif
+
+#define XL_LOG_DEBUG 3
+#define XL_LOG_INFO 2
+#define XL_LOG_WARNING 1
+#define XL_LOG_ERROR 0
+
+/* logging */
+void xl_logv(struct libxl_ctx *ctx, int errnoval, int loglevel, const char 
*file, int line, const char *func, char *fmt, va_list al);
+void xl_log(struct libxl_ctx *ctx, int errnoval, int loglevel, const char 
*file, int line, const char *func, char *fmt, ...);
+
 
 typedef enum {
     DEVICE_VIF,
diff -r 3e4051dbfd34 -r 411a5b796050 tools/libxl/xl.c
--- a/tools/libxl/xl.c  Wed Dec 30 12:42:41 2009 +0000
+++ b/tools/libxl/xl.c  Wed Dec 30 12:43:19 2009 +0000
@@ -44,6 +44,21 @@ void log_callback(void *userdata, int lo
 
     snprintf(str, sizeof(str), "[%d] %s:%d:%s: %s\n", loglevel, file, line, 
func, s);
     write(logfile, str, strlen(str));
+}
+
+#define LOG(_f, _a...)   dolog(__FILE__, __LINE__, __func__, _f, ##_a)
+
+void dolog(const char *file, int line, const char *func, char *fmt, ...)
+{
+    va_list ap;
+    char *s;
+    int rc;
+
+    va_start(ap, fmt);
+    rc = vasprintf(&s, fmt, ap);
+    va_end(ap);
+    if (rc >= 0)
+        write(logfile, s, rc);
 }
 
 static void init_create_info(libxl_domain_create_info *c_info)
@@ -784,7 +799,7 @@ start:
         daemon(0, 0);
         need_daemon = 0;
     }
-    XL_LOG(&ctx, XL_LOG_DEBUG, "Waiting for domain %s (domid %d) to die", 
info1.name, domid);
+    LOG("Waiting for domain %s (domid %d) to die", info1.name, domid);
     w1 = (libxl_waiter*) malloc(sizeof(libxl_waiter) * num_disks);
     w2 = (libxl_waiter*) malloc(sizeof(libxl_waiter));
     libxl_wait_for_disk_ejects(&ctx, domid, disks, num_disks, w1);
@@ -808,9 +823,9 @@ start:
         switch (event.type) {
             case DOMAIN_DEATH:
                 if (libxl_event_get_domain_death_info(&ctx, domid, &event, 
&info)) {
-                    XL_LOG(&ctx, XL_LOG_DEBUG, "Domain %d is dead", domid);
+                    LOG("Domain %d is dead", domid);
                     if (info.crashed || info.dying || (info.shutdown && 
(info.shutdown_reason != SHUTDOWN_suspend))) {
-                        XL_LOG(&ctx, XL_LOG_DEBUG, "Domain %d needs to be 
clean: destroying the domain", domid);
+                        LOG("Domain %d needs to be clean: destroying the 
domain", domid);
                         libxl_domain_destroy(&ctx, domid, 0);
                         if (info.shutdown && (info.shutdown_reason == 
SHUTDOWN_reboot)) {
                             libxl_free_waiter(w1);
@@ -818,12 +833,12 @@ start:
                             free(w1);
                             free(w2);
                             libxl_ctx_free(&ctx);
-                            XL_LOG(&ctx, XL_LOG_DEBUG, "Done. Rebooting now");
+                            LOG("Done. Rebooting now");
                             goto start;
                         }
-                        XL_LOG(&ctx, XL_LOG_DEBUG, "Done. Exiting now");
+                        LOG("Done. Exiting now");
                     }
-                    XL_LOG(&ctx, XL_LOG_DEBUG, "Domain %d does not need to be 
clean, exiting now", domid);
+                    LOG("Domain %d does not need to be clean, exiting now", 
domid);
                     exit(0);
                 }
                 break;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] libxl: hide internal logging from client, Xen patchbot-unstable <=