[Box Backup-commit] COMMIT r2102 - box/trunk/lib/common
boxbackup-dev@fluffy.co.uk
boxbackup-dev@fluffy.co.uk
Sat, 1 Mar 2008 22:54:56 +0000 (UTC)
Author: chris
Date: 2008-03-01 22:54:56 +0000 (Sat, 01 Mar 2008)
New Revision: 2102
Modified:
box/trunk/lib/common/Logging.cpp
box/trunk/lib/common/Logging.h
Log:
Add support for logging just to syslog (not console) at a given
priority.
Modified: box/trunk/lib/common/Logging.cpp
===================================================================
--- box/trunk/lib/common/Logging.cpp 2008-03-01 22:52:15 UTC (rev 2101)
+++ box/trunk/lib/common/Logging.cpp 2008-03-01 22:54:56 UTC (rev 2102)
@@ -148,6 +148,31 @@
}
}
+void Logging::LogToSyslog(Log::Level level, const std::string& rFile,
+ int line, const std::string& rMessage)
+{
+ if (!sLogToSyslog)
+ {
+ return;
+ }
+
+ if (level > sGlobalLevel)
+ {
+ return;
+ }
+
+ std::string newMessage;
+
+ if (sContextSet)
+ {
+ newMessage += "[" + sContext + "] ";
+ }
+
+ newMessage += rMessage;
+
+ spSyslog->Log(level, rFile, line, newMessage);
+}
+
void Logging::SetContext(std::string context)
{
sContext = context;
Modified: box/trunk/lib/common/Logging.h
===================================================================
--- box/trunk/lib/common/Logging.h 2008-03-01 22:52:15 UTC (rev 2101)
+++ box/trunk/lib/common/Logging.h 2008-03-01 22:54:56 UTC (rev 2102)
@@ -32,6 +32,13 @@
Logging::Log(level, __FILE__, __LINE__, line.str()); \
}
+#define BOX_SYSLOG(level, stuff) \
+{ \
+ std::ostringstream line; \
+ line << stuff; \
+ Logging::LogToSyslog(level, __FILE__, __LINE__, line.str()); \
+}
+
#define BOX_FATAL(stuff) BOX_LOG(Log::FATAL, stuff)
#define BOX_ERROR(stuff) BOX_LOG(Log::ERROR, stuff)
#define BOX_WARNING(stuff) BOX_LOG(Log::WARNING, stuff)
@@ -196,6 +203,8 @@
static void Remove (Logger* pOldLogger);
static void Log(Log::Level level, const std::string& rFile,
int line, const std::string& rMessage);
+ static void LogToSyslog(Log::Level level, const std::string& rFile,
+ int line, const std::string& rMessage);
static void SetContext(std::string context);
static void ClearContext();
static void SetGlobalLevel(Log::Level level) { sGlobalLevel = level; }