Add ShutdownGoogleLogging to close syslog.
This patch was contributed by DGunchev (thanks!)
http://code.google.com/p/google-glog/issues/detail?id=28
git-svn-id: https://google-glog.googlecode.com/svn/trunk@88 eb4d4688-79bd-11dd-afb4-1d65580434c0
diff --git a/src/glog/logging.h.in b/src/glog/logging.h.in
index 16ba694..ff23f2e 100644
--- a/src/glog/logging.h.in
+++ b/src/glog/logging.h.in
@@ -482,6 +482,9 @@
// specified by argv0 in log outputs.
GOOGLE_GLOG_DLL_DECL void InitGoogleLogging(const char* argv0);
+// Shutdown google's logging library.
+GOOGLE_GLOG_DLL_DECL void ShutdownGoogleLogging();
+
// Install a function which will be called after LOG(FATAL).
GOOGLE_GLOG_DLL_DECL void InstallFailureFunction(void (*fail_func)());
diff --git a/src/logging_unittest.cc b/src/logging_unittest.cc
index fb058e7..5fc34d4 100644
--- a/src/logging_unittest.cc
+++ b/src/logging_unittest.cc
@@ -227,6 +227,8 @@
TestErrno();
TestTruncate();
+ ShutdownGoogleLogging();
+
fprintf(stdout, "PASS\n");
return 0;
}
diff --git a/src/utilities.cc b/src/utilities.cc
index bd4e4ad..e97d4f2 100644
--- a/src/utilities.cc
+++ b/src/utilities.cc
@@ -44,6 +44,9 @@
#elif defined(HAVE_SYS_SYSCALL_H)
#include <sys/syscall.h> // for syscall()
#endif
+#ifdef HAVE_SYSLOG_H
+# include <syslog.h>
+#endif
#include "base/googleinit.h"
@@ -316,6 +319,14 @@
#endif
}
+void ShutdownGoogleLogging() {
+ CHECK(IsGoogleLoggingInitialized())
+ << "You called ShutdownGoogleLogging() without InitGoogleLogging() first!";
+#ifdef HAVE_SYSLOG_H
+ closelog();
+#endif
+}
+
_END_GOOGLE_NAMESPACE_
// Make an implementation of stacktrace compiled.
diff --git a/src/windows/glog/logging.h b/src/windows/glog/logging.h
index a63246d..7a6df74 100755
--- a/src/windows/glog/logging.h
+++ b/src/windows/glog/logging.h
@@ -486,6 +486,9 @@
// specified by argv0 in log outputs.
GOOGLE_GLOG_DLL_DECL void InitGoogleLogging(const char* argv0);
+// Shutdown google's logging library.
+GOOGLE_GLOG_DLL_DECL void ShutdownGoogleLogging();
+
// Install a function which will be called after LOG(FATAL).
GOOGLE_GLOG_DLL_DECL void InstallFailureFunction(void (*fail_func)());