[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 8/8] qga: map GLib log levels to system levels
From: |
Konstantin Kostiuk |
Subject: |
[PULL 8/8] qga: map GLib log levels to system levels |
Date: |
Fri, 16 Dec 2022 15:54:39 +0200 |
From: Andrey Drobyshev via <qemu-devel@nongnu.org>
This patch translates GLib-specific log levels to system ones, so that
they may be used by both *nix syslog() (as a "priority" argument) and
Windows ReportEvent() (as a "wType" argument).
Currently the only codepath to write to "syslog" domain is slog()
function. However, this patch allows the interface to be extended.
Note that since slog() is using G_LOG_LEVEL_INFO level, its behaviour
doesn't change.
Originally-by: Yuri Pudgorodskiy <yur@virtuozzo.com>
Signed-off-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com>
Tested-by: Konstantin Kostiuk <kkostiuk@redhat.com>
Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
---
qga/main.c | 36 ++++++++++++++++++++++++++++++++++--
1 file changed, 34 insertions(+), 2 deletions(-)
diff --git a/qga/main.c b/qga/main.c
index 1463a1c170..85b7d6ced5 100644
--- a/qga/main.c
+++ b/qga/main.c
@@ -314,6 +314,38 @@ void ga_enable_logging(GAState *s)
s->logging_enabled = true;
}
+static int glib_log_level_to_system(int level)
+{
+ switch (level) {
+#ifndef _WIN32
+ case G_LOG_LEVEL_ERROR:
+ return LOG_ERR;
+ case G_LOG_LEVEL_CRITICAL:
+ return LOG_CRIT;
+ case G_LOG_LEVEL_WARNING:
+ return LOG_WARNING;
+ case G_LOG_LEVEL_MESSAGE:
+ return LOG_NOTICE;
+ case G_LOG_LEVEL_DEBUG:
+ return LOG_DEBUG;
+ case G_LOG_LEVEL_INFO:
+ default:
+ return LOG_INFO;
+#else
+ case G_LOG_LEVEL_ERROR:
+ case G_LOG_LEVEL_CRITICAL:
+ return EVENTLOG_ERROR_TYPE;
+ case G_LOG_LEVEL_WARNING:
+ return EVENTLOG_WARNING_TYPE;
+ case G_LOG_LEVEL_MESSAGE:
+ case G_LOG_LEVEL_INFO:
+ case G_LOG_LEVEL_DEBUG:
+ default:
+ return EVENTLOG_INFORMATION_TYPE;
+#endif
+ }
+}
+
static void ga_log(const gchar *domain, GLogLevelFlags level,
const gchar *msg, gpointer opaque)
{
@@ -327,9 +359,9 @@ static void ga_log(const gchar *domain, GLogLevelFlags
level,
level &= G_LOG_LEVEL_MASK;
if (g_strcmp0(domain, "syslog") == 0) {
#ifndef _WIN32
- syslog(LOG_INFO, "%s: %s", level_str, msg);
+ syslog(glib_log_level_to_system(level), "%s: %s", level_str, msg);
#else
- ReportEvent(s->event_log, EVENTLOG_INFORMATION_TYPE,
+ ReportEvent(s->event_log, glib_log_level_to_system(level),
0, 1, NULL, 1, 0, &msg, NULL);
#endif
} else if (level & s->log_level) {
--
2.25.1
- [PULL 0/8] QEMU Guest Agent misc patches, Konstantin Kostiuk, 2022/12/16
- [PULL 1/8] qga: Move FS TRIM code to commands-linux.c, Konstantin Kostiuk, 2022/12/16
- [PULL 2/8] qga: Add ZFS TRIM support for FreeBSD, Konstantin Kostiuk, 2022/12/16
- [PULL 3/8] qga: Add initial OpenBSD and NetBSD support, Konstantin Kostiuk, 2022/12/16
- [PULL 4/8] qga:/qga-win: adding a empty PCI address creation function, Konstantin Kostiuk, 2022/12/16
- [PULL 5/8] qga:/qga-win: skip getting pci info for USB disks, Konstantin Kostiuk, 2022/12/16
- [PULL 8/8] qga: map GLib log levels to system levels,
Konstantin Kostiuk <=
- [PULL 6/8] qga-win: choose the right libpcre version to include in MSI package, Konstantin Kostiuk, 2022/12/16
- [PULL 7/8] qga-win: add logging to Windows event log, Konstantin Kostiuk, 2022/12/16
- Re: [PULL 0/8] QEMU Guest Agent misc patches, Peter Maydell, 2022/12/16