Author: tedross
Date: 2008-12-17 13:00:07 -0500 (Wed, 17 Dec 2008)
New Revision: 3015
Modified:
mgmt/trunk/sesame/cpp/etc/sesame.conf
mgmt/trunk/sesame/cpp/etc/sysvinit-sesame
mgmt/trunk/sesame/cpp/src/SysAgent.cpp
Log:
Added support for logging to syslog with configurable log filter.
Modified: mgmt/trunk/sesame/cpp/etc/sesame.conf
===================================================================
--- mgmt/trunk/sesame/cpp/etc/sesame.conf 2008-12-17 13:26:51 UTC (rev 3014)
+++ mgmt/trunk/sesame/cpp/etc/sesame.conf 2008-12-17 18:00:07 UTC (rev 3015)
@@ -43,3 +43,17 @@
##
#state-dir=/var/lib/sesame
+##=========
+## Logging
+##=========
+
+# log-enable=RULE
+#
+# Enable logging for selected levels and components. RULE is in the form
+# 'LEVEL[+][:PATTERN]' Levels are one of:
+# trace debug info notice warning error critical
+#
+# For example:
+# '--log-enable warning+' logs all warning, error and critical messages.
+
+#log-enable notice+
Modified: mgmt/trunk/sesame/cpp/etc/sysvinit-sesame
===================================================================
--- mgmt/trunk/sesame/cpp/etc/sysvinit-sesame 2008-12-17 13:26:51 UTC (rev 3014)
+++ mgmt/trunk/sesame/cpp/etc/sysvinit-sesame 2008-12-17 18:00:07 UTC (rev 3015)
@@ -17,11 +17,13 @@
processname=sesame
servicename=sesame
+[ -f /etc/sysconfig/$servicename ] && . /etc/sysconfig/$servicename
+
RETVAL=0
start() {
echo -n $"Starting Sesame daemon: "
- daemon --user sesame --check $servicename $processname \&
+ daemon --user sesame --check $servicename $processname $SESAME_OPTIONS\&
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$servicename
Modified: mgmt/trunk/sesame/cpp/src/SysAgent.cpp
===================================================================
--- mgmt/trunk/sesame/cpp/src/SysAgent.cpp 2008-12-17 13:26:51 UTC (rev 3014)
+++ mgmt/trunk/sesame/cpp/src/SysAgent.cpp 2008-12-17 18:00:07 UTC (rev 3015)
@@ -3,6 +3,8 @@
#include <qpid/management/ManagementObject.h>
#include <qpid/agent/ManagementAgent.h>
#include <qpid/sys/Mutex.h>
+#include "qpid/log/Logger.h"
+#include "qpid/log/posix/SinkOptions.h"
#include "qpid/sys/SystemInfo.h"
#include "qpid/framing/Uuid.h"
#include "qmf/com/redhat/sesame/Package.h"
@@ -304,23 +306,35 @@
int main_int(int argc, char** argv)
{
+ qpid::log::Logger& logger = qpid::log::Logger::instance();
+ qpid::log::Options logOptions(argv[0], "sesame");
+ qpid::log::posix::SinkOptions* sinkOptions =
+ static_cast<qpid::log::posix::SinkOptions*>(logOptions.sinkOptions.get());
+
singleton = new ManagementAgent::Singleton();
signal(SIGINT, shutdown);
- options["no-config"] = Option("", "",
"Don't read configuration file");
- options["config"] = Option("FILE", CONF_FILE,
"Configuration file");
- options["host"] = Option("ADDR", "localhost",
"Broker host name or IP address");
- options["port"] = Option("N", "5672",
"Port for broker service");
- options["proto"] = Option("NAME", "tcp",
"Protocol for broker communication");
- options["mech"] = Option("NAME", "PLAIN",
"Authentication mechanism");
- options["uid"] = Option("NAME", "guest",
"Authentication user name");
- options["pwd"] = Option("PASSWORD", "guest",
"Authentication password");
- options["pwd-file"] = Option("FILE", "",
"File containing password");
- options["state-dir"] = Option("DIR", LOCSTATE_DIR,
"Directory for stored state");
+ options["no-config"] = Option("", "",
"Don't read configuration file");
+ options["config"] = Option("FILE", CONF_FILE,
"Configuration file");
+ options["host"] = Option("ADDR", "localhost",
"Broker host name or IP address");
+ options["port"] = Option("N", "5672",
"Port for broker service");
+ options["proto"] = Option("NAME", "tcp",
"Protocol for broker communication");
+ options["mech"] = Option("NAME", "PLAIN",
"Authentication mechanism");
+ options["uid"] = Option("NAME", "guest",
"Authentication user name");
+ options["pwd"] = Option("PASSWORD", "guest",
"Authentication password");
+ options["pwd-file"] = Option("FILE", "",
"File containing password");
+ options["state-dir"] = Option("DIR", LOCSTATE_DIR,
"Directory for stored state");
+ options["log-enable"] = Option("", "notice+",
"Log severity threshold");
configure(argc, argv);
getPassword();
+ logOptions.selectors.clear();
+ logOptions.selectors.push_back(options["log-enable"].value);
+ logOptions.time = false;
+ sinkOptions->logToSyslog = true;
+ logger.configure(logOptions);
+
// Create the qmf management agent
ManagementAgent* agent = singleton->getInstance();