[PATCH 1/2] os: Add configure flag for disabling logging to a file

William Douglas william.douglas at intel.com
Mon Sep 9 12:47:28 PDT 2013


Prior to allowing multiple log sinks, first allow logging to a file on
disk to be disabled.

Signed-off-by: William Douglas <william.douglas at intel.com>
---
 configure.ac             | 9 +++++++++
 include/xorg-config.h.in | 3 +++
 os/log.c                 | 8 ++++++++
 3 files changed, 20 insertions(+)

diff --git a/configure.ac b/configure.ac
index 5159420..68b8762 100644
--- a/configure.ac
+++ b/configure.ac
@@ -476,6 +476,10 @@ AC_ARG_WITH(module-dir,      AS_HELP_STRING([--with-module-dir=DIR],
 				  [Directory where modules are installed (default: $libdir/xorg/modules)]),
 				[ moduledir="$withval" ],
 				[ moduledir="${libdir}/xorg/modules" ])
+AC_ARG_ENABLE(filesystem-logging, AS_HELP_STRING([--disable-filesystem-logging],
+				  [Write log messages to the filesystem (default: enabled)]),
+				[ FILESYSTEM_LOGGING=$enableval ],
+				[ FILESYSTEM_LOGGING=yes ])
 AC_ARG_WITH(log-dir,         AS_HELP_STRING([--with-log-dir=DIR],
 				  [Directory where log files are kept (default: $localstatedir/log)]),
 				[ logdir="$withval" ],
@@ -1483,6 +1487,11 @@ AC_MSG_RESULT([$with_sha1])
 AC_SUBST(SHA1_LIBS)
 AC_SUBST(SHA1_CFLAGS)
 
+AM_CONDITIONAL(FILESYSTEM_LOGGING, [test "x$FILESYSTEM_LOGGING" = xyes])
+if test "x$FILESYSTEM_LOGGING" = xyes; then
+	AC_DEFINE(FILESYSTEM_LOGGING, 1, [Write log messages to the filesystem])
+fi
+
 PKG_CHECK_MODULES([XSERVERCFLAGS], [$REQUIRED_MODULES $REQUIRED_LIBS])
 PKG_CHECK_MODULES([XSERVERLIBS], [$REQUIRED_LIBS])
 
diff --git a/include/xorg-config.h.in b/include/xorg-config.h.in
index 0df31ae..93027c5 100644
--- a/include/xorg-config.h.in
+++ b/include/xorg-config.h.in
@@ -142,4 +142,7 @@
 /* Define to 1 if you have the `seteuid' function. */
 #undef HAVE_SETEUID
 
+/* Use filesystem logging */
+#undef FILESYSTEM_LOGGING
+
 #endif /* _XORG_CONFIG_H_ */
diff --git a/os/log.c b/os/log.c
index 53b3586..856fa0f 100644
--- a/os/log.c
+++ b/os/log.c
@@ -192,6 +192,7 @@ strlen_sigsafe(const char *s)
 const char *
 LogInit(const char *fname, const char *backup)
 {
+#ifdef FILESYSTEM_LOGGING
     char *logFileName = NULL;
 
     if (fname && *fname) {
@@ -234,6 +235,7 @@ LogInit(const char *fname, const char *backup)
 #endif
         }
     }
+#endif
 
     /*
      * Unconditionally free the buffer, and flag that the buffer is no longer
@@ -246,12 +248,17 @@ LogInit(const char *fname, const char *backup)
     }
     needBuffer = FALSE;
 
+#ifdef FILESYSTEM_LOGGING
     return logFileName;
+#else
+    return NULL;
+#endif
 }
 
 void
 LogClose(enum ExitCode error)
 {
+#ifdef FILESYSTEM_LOGGING
     if (logFile) {
         ErrorFSigSafe("Server terminated %s (%d). Closing log file.\n",
                (error == EXIT_NO_ERROR) ? "successfully" : "with error", error);
@@ -259,6 +266,7 @@ LogClose(enum ExitCode error)
         logFile = NULL;
         logFileFd = -1;
     }
+#endif
 }
 
 Bool
-- 
1.8.3.4



More information about the xorg-devel mailing list