Archived
This forum has been archived. Please start a new discussion on GitHub.
Patch for choose the syslog facility
Hi,
I add Ice.SysLogFacility property for choose the syslog facility.
cheers
I add Ice.SysLogFacility property for choose the syslog facility.
cheers
--- zeroc-ice-3.3.1/cpp/src/Ice/Instance.cpp 2009-03-20 18:52:13.000000000 +0100
+++ Ice-3.3.1/cpp/src/Ice/Instance.cpp 2009-10-23 10:42:50.000000000 +0200
@@ -903,12 +903,49 @@
if(_initData.properties->getPropertyAsInt("Ice.UseSyslog") > 0)
{
+ int logfac = 0;
+ string sysLogFacility = _initData.properties->getProperty("Ice.SysLogFacility") ;
+
identForOpenlog = _initData.properties->getProperty("Ice.ProgramName");
if(identForOpenlog.empty())
{
identForOpenlog = "<Unknown Ice Program>";
}
- openlog(identForOpenlog.c_str(), LOG_PID, LOG_USER);
+
+ if(sysLogFacility.empty())
+ {
+ openlog(identForOpenlog.c_str(), LOG_PID, LOG_USER);
+ }
+ else
+ {
+
+ if (sysLogFacility.find("LOG_KERN") != string::npos) logfac = LOG_KERN;
+ else if (sysLogFacility.find("LOG_USER") != string::npos) logfac = LOG_USER;
+ else if (sysLogFacility.find("LOG_MAIL") != string::npos) logfac = LOG_MAIL;
+ else if (sysLogFacility.find("LOG_DAEMON") != string::npos) logfac = LOG_DAEMON;
+ else if (sysLogFacility.find("LOG_AUTH") != string::npos) logfac = LOG_AUTH;
+ else if (sysLogFacility.find("LOG_SYSLOG") != string::npos) logfac = LOG_SYSLOG;
+ else if (sysLogFacility.find("LOG_LPR") != string::npos) logfac = LOG_LPR;
+ else if (sysLogFacility.find("LOG_NEWS") != string::npos) logfac = LOG_NEWS;
+ else if (sysLogFacility.find("LOG_UUCP") != string::npos) logfac = LOG_UUCP;
+ else if (sysLogFacility.find("LOG_CRON") != string::npos) logfac = LOG_CRON;
+ else if (sysLogFacility.find("LOG_AUTHPRIV") != string::npos) logfac = LOG_AUTHPRIV;
+ else if (sysLogFacility.find("LOG_FTP") != string::npos) logfac = LOG_FTP;
+ else if (sysLogFacility.find("LOG_LOCAL0") != string::npos) logfac = LOG_LOCAL0;
+ else if (sysLogFacility.find("LOG_LOCAL1") != string::npos) logfac = LOG_LOCAL1;
+ else if (sysLogFacility.find("LOG_LOCAL2") != string::npos) logfac = LOG_LOCAL2;
+ else if (sysLogFacility.find("LOG_LOCAL3") != string::npos) logfac = LOG_LOCAL3;
+ else if (sysLogFacility.find("LOG_LOCAL4") != string::npos) logfac = LOG_LOCAL4;
+ else if (sysLogFacility.find("LOG_LOCAL5") != string::npos) logfac = LOG_LOCAL5;
+ else if (sysLogFacility.find("LOG_LOCAL6") != string::npos) logfac = LOG_LOCAL6;
+ else if (sysLogFacility.find("LOG_LOCAL7") != string::npos) logfac = LOG_LOCAL7;
+
+ if(!logfac)
+ {
+ throw InitializationException(__FILE__, __LINE__, "Error on Ice.SysLogFacility property.");
+ }
+ openlog(identForOpenlog.c_str(), LOG_PID, logfac);
+ }
}
#endif
}
diff -Naur zeroc-ice-3.3.1/cpp/src/Ice/PropertyNames.cpp Ice-3.3.1/cpp/src/Ice/PropertyNames.cpp
--- zeroc-ice-3.3.1/cpp/src/Ice/PropertyNames.cpp 2009-10-21 19:13:02.000000000 +0200
+++ Ice-3.3.1/cpp/src/Ice/PropertyNames.cpp 2009-10-21 19:13:33.000000000 +0200
@@ -114,6 +114,7 @@
IceInternal::Property("Ice.TCP.RcvSize", false, 0),
IceInternal::Property("Ice.TCP.SndSize", false, 0),
IceInternal::Property("Ice.UseSyslog", false, 0),
+ IceInternal::Property("Ice.SysLogFacility", false, 0),
IceInternal::Property("Ice.Warn.AMICallback", false, 0),
IceInternal::Property("Ice.Warn.Connections", false, 0),
IceInternal::Property("Ice.Warn.Datagrams", false, 0),
0