diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2009-12-04 11:10:09 -0330 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2009-12-04 11:10:09 -0330 |
commit | 009d41ef816a6c26b0436c2f45f9fffff5f21cda (patch) | |
tree | 3b098a1e77fc46164a6d9695cfe55a46698e70a0 /cpp/src/Ice/SysLoggerI.cpp | |
parent | Fixed usage of icestormmigrate and upgradeicegrid.py (bug 3942) (diff) | |
download | ice-009d41ef816a6c26b0436c2f45f9fffff5f21cda.tar.bz2 ice-009d41ef816a6c26b0436c2f45f9fffff5f21cda.tar.xz ice-009d41ef816a6c26b0436c2f45f9fffff5f21cda.zip |
Bug 4336 - Add ability to set facility for syslog
Diffstat (limited to 'cpp/src/Ice/SysLoggerI.cpp')
-rw-r--r-- | cpp/src/Ice/SysLoggerI.cpp | 98 |
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); } |