From 15de708e18d6faffe2dad84483e801a42292da10 Mon Sep 17 00:00:00 2001 From: Boram Park Date: Tue, 11 Jun 2013 21:44:18 +0900 Subject: [PATCH] use dlog to print log Change-Id: I1a3d92957eb341dd8c33c56c4f09b3d718a95ac9 --- configure.ac | 2 +- lib/xdbg.pc.in | 2 +- lib/xdbg_log.c | 13 ++++++++++--- lib/xdbg_log.h | 29 ++++++++++++++++++++-------- lib/xdbg_log_dlog.c | 38 ++++++++++++++----------------------- module/xdbg_module_evlog.c | 4 ++-- module/xdbg_module_main.c | 2 +- packaging/xorg-x11-module-xdbg.spec | 2 ++ 8 files changed, 52 insertions(+), 40 deletions(-) diff --git a/configure.ac b/configure.ac index aee7bea..115ffe4 100644 --- a/configure.ac +++ b/configure.ac @@ -49,7 +49,7 @@ AC_ARG_WITH(xorg-module-dir, [moduledir="$libdir/xorg/modules"]) # Checks for pkg-config packages -PKG_CHECK_MODULES(XDBG, xorg-server x11 xdamage xext dbus-1 bigreqsproto compositeproto damageproto dmxproto dri2proto fixesproto fontsproto gestureproto inputproto kbproto randrproto recordproto renderproto resourceproto scrnsaverproto videoproto xcmiscproto xextproto xf86bigfontproto xf86dgaproto xf86driproto xf86vidmodeproto xineramaproto xproto libdrm xcomposite libdri2 xgesture xtst xrandr xi xv) +PKG_CHECK_MODULES(XDBG, dlog xorg-server x11 xdamage xext dbus-1 bigreqsproto compositeproto damageproto dmxproto dri2proto fixesproto fontsproto gestureproto inputproto kbproto randrproto recordproto renderproto resourceproto scrnsaverproto videoproto xcmiscproto xextproto xf86bigfontproto xf86dgaproto xf86driproto xf86vidmodeproto xineramaproto xproto libdrm xcomposite libdri2 xgesture xtst xrandr xi xv) AC_SUBST([XDBG_CFLAGS]) AC_SUBST([XDBG_LIBS]) diff --git a/lib/xdbg.pc.in b/lib/xdbg.pc.in index 926fb0e..ba168a0 100644 --- a/lib/xdbg.pc.in +++ b/lib/xdbg.pc.in @@ -6,6 +6,6 @@ includedir=@includedir@ Name: xdbg Description: The X debug Library Version: @PACKAGE_VERSION@ -Requires.private: xorg-server x11 +Requires.private: xorg-server x11 dlog Cflags: -I${includedir}/xdbg Libs: -L${libdir} -lxdbg-log diff --git a/lib/xdbg_log.c b/lib/xdbg_log.c index 0f287d5..0ae68af 100644 --- a/lib/xdbg_log.c +++ b/lib/xdbg_log.c @@ -35,7 +35,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include - +#include #include "xdbg_log.h" #ifndef API @@ -98,12 +98,19 @@ _LogModule (void * handle, int logoption, const char * file, int line, const cha kLogWrapper (loglevel, logoption, file, line, tmpBuf, args); } + /* write to file */ if (loglevel >= XLOG_LEVEL_INFO) { - snprintf(tmpBuf, BUF_LEN, "(%s) [%s]%s", ostr[loglevel], (name)?name:"", f); + if (logoption & XLOG_OPTION_SECURE) + snprintf(tmpBuf, BUF_LEN, "(%s) > [SECURE_LOG] [%s]%s", ostr[loglevel], (name)?name:"", f); + else + snprintf(tmpBuf, BUF_LEN, "(%s) [%s]%s", ostr[loglevel], (name)?name:"", f); + + if (logoption & XLOG_OPTION_XORG) + LogVWrite (1, tmpBuf, args); - LogVWrite (1, tmpBuf, args); + dLogWrapper (loglevel, logoption, file, line, tmpBuf, args); } /* write to terminal */ diff --git a/lib/xdbg_log.h b/lib/xdbg_log.h index 554b0be..f7cfaf2 100644 --- a/lib/xdbg_log.h +++ b/lib/xdbg_log.h @@ -39,6 +39,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include #include +#include // Masks #define XLOG_MASK_LOGLEVEL 0x000000FF @@ -64,7 +65,9 @@ enum // Log Options #define XLOG_OPTION_KLOG (1 << 8) -#define XLOG_OPTION_SLOG (1 << 9) /* print to stderr always */ +#define XLOG_OPTION_SLOG (1 << 9) +#define XLOG_OPTION_XORG (1 << 10) +#define XLOG_OPTION_SECURE (1 << 11) /* print secure log */ typedef enum { @@ -77,13 +80,15 @@ int xDbgLogSetLevel (unsigned int module, int level); void* xDbgLog (unsigned int module, int logoption, const char *file, int line, const char *f, ...); // defines -#define XLOG_DEBUG(mod, ...) xDbgLog(mod, XLOG_LEVEL_DEBUG, __FILE__, __LINE__, __VA_ARGS__) -#define XLOG_TRACE(mod, ...) xDbgLog(mod, XLOG_LEVEL_TRACE, __FILE__, __LINE__, __VA_ARGS__) -#define XLOG_INFO(mod, ...) xDbgLog(mod, XLOG_LEVEL_INFO, __FILE__, __LINE__, __VA_ARGS__) -#define XLOG_WARNING(mod, ...) xDbgLog(mod, XLOG_LEVEL_WARNING, __FILE__, __LINE__, __VA_ARGS__) -#define XLOG_ERROR(mod, ...) xDbgLog(mod, XLOG_LEVEL_ERROR, __FILE__, __LINE__, __VA_ARGS__) -#define XLOG_KLOG(mod, ...) xDbgLog(mod, XLOG_LEVEL_INFO|XLOG_OPTION_KLOG, __FILE__, __LINE__, __VA_ARGS__) -#define XLOG_SLOG(mod, ...) xDbgLog(mod, XLOG_LEVEL_INFO|XLOG_OPTION_SLOG, __FILE__, __LINE__, __VA_ARGS__) +#define XLOG_DEBUG(mod, ARG...) xDbgLog(mod, XLOG_LEVEL_DEBUG, __FILE__, __LINE__, ##ARG) +#define XLOG_TRACE(mod, ARG...) xDbgLog(mod, XLOG_LEVEL_TRACE, __FILE__, __LINE__, ##ARG) +#define XLOG_INFO(mod, ARG...) xDbgLog(mod, XLOG_LEVEL_INFO, __FILE__, __LINE__, ##ARG) +#define XLOG_WARNING(mod, ARG...) xDbgLog(mod, XLOG_LEVEL_WARNING, __FILE__, __LINE__, ##ARG) +#define XLOG_ERROR(mod, ARG...) xDbgLog(mod, XLOG_LEVEL_ERROR, __FILE__, __LINE__, ##ARG) +#define XLOG_KLOG(mod, ARG...) xDbgLog(mod, XLOG_LEVEL_INFO|XLOG_OPTION_KLOG, __FILE__, __LINE__, ##ARG) +#define XLOG_SLOG(mod, ARG...) xDbgLog(mod, XLOG_LEVEL_INFO|XLOG_OPTION_SLOG, __FILE__, __LINE__, ##ARG) +#define XLOG_XORG(mod, ARG...) xDbgLog(mod, XLOG_LEVEL_INFO|XLOG_OPTION_XORG, __FILE__, __LINE__, ##ARG) +#define XLOG_SECURE(mod, ARG...) xDbgLog(mod, XLOG_LEVEL_INFO|XLOG_OPTION_SECURE, __FILE__, __LINE__, ##ARG) #define XDBG_DEBUG(mod, fmt, ARG...) XLOG_DEBUG(mod, "[%s] "fmt, __FUNCTION__, ##ARG) #define XDBG_TRACE(mod, fmt, ARG...) XLOG_TRACE(mod, "[%s] "fmt, __FUNCTION__, ##ARG) @@ -93,6 +98,14 @@ void* xDbgLog (unsigned int module, int logoption, const char *file, #define XDBG_ERRNO(mod, fmt, ARG...) XLOG_ERROR(mod, "[%s](err=%s(%d)) "fmt, __FUNCTION__, strerror(errno), errno, ##ARG) #define XDBG_KLOG(mod, fmt, ARG...) XLOG_KLOG(mod, "[%s] "fmt, __FUNCTION__, ##ARG) #define XDBG_SLOG(mod, fmt, ARG...) XLOG_SLOG(mod, "[%s] "fmt, __FUNCTION__, ##ARG) +#define XDBG_XORG(mod, fmt, ARG...) XLOG_XORG(mod, "[%s] "fmt, __FUNCTION__, ##ARG) + +/* _SECURE_LOG defined by system, */ +#ifdef _SECURE_LOG +#define XDBG_SECURE(mod, fmt, ARG...) XLOG_SECURE(mod, "[%s] "fmt, __FUNCTION__, ##ARG) +#else +#define XDBG_SECURE(mod, fmt, ARG...) (0) +#endif #define XDBG_NEVER_GET_HERE(mod) XLOG_ERROR(mod, "[%s:%d] ** NEVER GET HERE **\n", __FUNCTION__,__LINE__) diff --git a/lib/xdbg_log_dlog.c b/lib/xdbg_log_dlog.c index f5560de..9e75adb 100644 --- a/lib/xdbg_log_dlog.c +++ b/lib/xdbg_log_dlog.c @@ -30,43 +30,33 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **************************************************************************/ #include -//#include +#include + +#include "xdbg_log.h" void dLogWrapper (int loglevel, int module, const char * file, int line, const char * f, va_list args) { -#if 0 - const char * tag; - int priority; - - if (module & LOGOPTION_DLOG_X) - tag = "xserver"; - else if (module & LOGOPTION_DLOG_EVENT) - tag = "dlog_event"; - else - return; + const char * tag = "Xorg"; switch (loglevel) { - case LOGLEVEL_DEBUG: - priority = DLOG_DEBUG; + case XLOG_LEVEL_DEBUG: + SLOG_VA (LOG_DEBUG, tag, f, args); break; - case LOGLEVEL_TRACE: - priority = DLOG_INFO; + case XLOG_LEVEL_TRACE: + SLOG_VA (LOG_DEBUG, tag, f, args); break; - case LOGLEVEL_INFO: - priority = DLOG_WARN; + case XLOG_LEVEL_INFO: + SLOG_VA (LOG_INFO, tag, f, args); break; - case LOGLEVEL_WARNING: - priority = DLOG_ERROR; + case XLOG_LEVEL_WARNING: + SLOG_VA (LOG_WARN, tag, f, args); break; - case LOGLEVEL_ERROR: - priority = DLOG_FATAL; + case XLOG_LEVEL_ERROR: + SLOG_VA (LOG_ERROR, tag, f, args); break; default: return; } - - SLOG_VA (priority, tag, f, args); -#endif } diff --git a/module/xdbg_module_evlog.c b/module/xdbg_module_evlog.c index 2ec77b4..987da82 100644 --- a/module/xdbg_module_evlog.c +++ b/module/xdbg_module_evlog.c @@ -493,7 +493,7 @@ _traceEvent (CallbackListPtr *pcbl, pointer nulldata, pointer calldata) { case KeyPress: case KeyRelease: - XDBG_INFO (MXDBG, "%s(%d)_%d(%s.%d : %s.0x%lx) root(%d,%d) win(%d,%d)\n" + XDBG_SECURE (MXDBG, "%s(%d)_%d(%s.%d : %s.0x%lx) root(%d,%d) win(%d,%d)\n" , ename[type-KeyPress], pev->u.u.detail, pev->u.u.type , info->command, info->pid , _traceGetWindowName (pClient, pev->u.keyButtonPointer.event), pev->u.keyButtonPointer.event @@ -503,7 +503,7 @@ _traceEvent (CallbackListPtr *pcbl, pointer nulldata, pointer calldata) case ButtonPress: case ButtonRelease: - XDBG_INFO (MXDBG, "%s(%d)_%d(%s.%d : %s.0x%lx) root(%d,%d) win(%d,%d)\n" + XDBG_SECURE (MXDBG, "%s(%d)_%d(%s.%d : %s.0x%lx) root(%d,%d) win(%d,%d)\n" , ename[type-KeyPress], pev->u.u.detail, pev->u.u.type , info->command, info->pid , _traceGetWindowName (pClient, pev->u.keyButtonPointer.event), pev->u.keyButtonPointer.event diff --git a/module/xdbg_module_main.c b/module/xdbg_module_main.c index 50e81f6..0965507 100644 --- a/module/xdbg_module_main.c +++ b/module/xdbg_module_main.c @@ -127,7 +127,7 @@ _traceClientState (CallbackListPtr *list, pointer closure, pointer calldata) if (client->clientState == ClientStateInitial) _debugClientInfo (client); - XDBG_INFO (MXDBG, "id:%d, conn_fd:%d, pid:%d, uid:%d, name:%s (%s)\n", + XDBG_SECURE (MXDBG, "id:%d, conn_fd:%d, pid:%d, uid:%d, name:%s (%s)\n", info->index, info->conn_fd, info->pid, info->uid, info->command, clientState[client->clientState]); return; diff --git a/packaging/xorg-x11-module-xdbg.spec b/packaging/xorg-x11-module-xdbg.spec index 7497364..55f15d5 100644 --- a/packaging/xorg-x11-module-xdbg.spec +++ b/packaging/xorg-x11-module-xdbg.spec @@ -5,6 +5,7 @@ Release: 1 Group: System/Libraries License: MIT Source0: %{name}-%{version}.tar.gz +BuildRequires: pkgconfig(dlog) BuildRequires: pkgconfig(xorg-server) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xext) @@ -53,6 +54,7 @@ Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: pkgconfig(xorg-server) Requires: pkgconfig(x11) +Requires: pkgconfig(dlog) %description devel X server runtime debug library development package -- 2.7.4