summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/SysLoggerI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/SysLoggerI.cpp')
-rw-r--r--cpp/src/Ice/SysLoggerI.cpp98
1 files changed, 95 insertions, 3 deletions
diff --git a/cpp/src/Ice/SysLoggerI.cpp b/cpp/src/Ice/SysLoggerI.cpp
index 83feda8f981..0fcee5ee760 100644
--- a/cpp/src/Ice/SysLoggerI.cpp
+++ b/cpp/src/Ice/SysLoggerI.cpp
@@ -8,16 +8,108 @@
// **********************************************************************
#include <Ice/SysLoggerI.h>
+#include <Ice/LocalException.h>
#include <syslog.h>
using namespace std;
using namespace Ice;
using namespace IceInternal;
-Ice::SysLoggerI::SysLoggerI(const string& prefix)
+Ice::SysLoggerI::SysLoggerI(const string& prefix, const string& facilityString)
+{
+ if(facilityString == "LOG_KERN")
+ {
+ _facility = LOG_KERN;
+ }
+ else if(facilityString == "LOG_USER")
+ {
+ _facility = LOG_USER;
+ }
+ else if(facilityString == "LOG_MAIL")
+ {
+ _facility = LOG_MAIL;
+ }
+ else if(facilityString == "LOG_DAEMON")
+ {
+ _facility = LOG_DAEMON;
+ }
+ else if(facilityString == "LOG_AUTH")
+ {
+ _facility = LOG_AUTH;
+ }
+ else if(facilityString == "LOG_SYSLOG")
+ {
+ _facility = LOG_SYSLOG;
+ }
+ else if(facilityString == "LOG_LPR")
+ {
+ _facility = LOG_LPR;
+ }
+ else if(facilityString == "LOG_NEWS")
+ {
+ _facility = LOG_NEWS;
+ }
+ else if(facilityString == "LOG_UUCP")
+ {
+ _facility = LOG_UUCP;
+ }
+ else if(facilityString == "LOG_CRON")
+ {
+ _facility = LOG_CRON;
+ }
+ else if(facilityString == "LOG_AUTHPRIV")
+ {
+ _facility = LOG_AUTHPRIV;
+ }
+ else if(facilityString == "LOG_FTP")
+ {
+ _facility = LOG_FTP;
+ }
+ else if(facilityString == "LOG_LOCAL0")
+ {
+ _facility = LOG_LOCAL0;
+ }
+ else if(facilityString == "LOG_LOCAL1")
+ {
+ _facility = LOG_LOCAL1;
+ }
+ else if(facilityString == "LOG_LOCAL2")
+ {
+ _facility = LOG_LOCAL2;
+ }
+ else if(facilityString == "LOG_LOCAL3")
+ {
+ _facility = LOG_LOCAL3;
+ }
+ else if(facilityString == "LOG_LOCAL4")
+ {
+ _facility = LOG_LOCAL4;
+ }
+ else if(facilityString == "LOG_LOCAL5")
+ {
+ _facility = LOG_LOCAL5;
+ }
+ else if(facilityString == "LOG_LOCAL6")
+ {
+ _facility = LOG_LOCAL6;
+ }
+ else if(facilityString == "LOG_LOCAL7")
+ {
+ _facility = LOG_LOCAL7;
+ }
+ else
+ {
+ throw InitializationException(__FILE__, __LINE__, "Invalid value for Ice.SyslogFacility: " + facilityString);
+ }
+
+ int logopt = LOG_PID | LOG_CONS;
+ openlog(prefix.c_str(), logopt, _facility);
+}
+
+Ice::SysLoggerI::SysLoggerI(const string& prefix, int facility) :
+ _facility(facility)
{
int logopt = LOG_PID | LOG_CONS;
- int facility = LOG_USER;
openlog(prefix.c_str(), logopt, facility);
}
@@ -58,5 +150,5 @@ Ice::SysLoggerI::error(const string& message)
Ice::LoggerPtr
Ice::SysLoggerI::cloneWithPrefix(const string& prefix)
{
- return new SysLoggerI(prefix);
+ return new SysLoggerI(prefix, _facility);
}