LSSTApplications  1.1.2+25,10.0+13,10.0+132,10.0+133,10.0+224,10.0+41,10.0+8,10.0-1-g0f53050+14,10.0-1-g4b7b172+19,10.0-1-g61a5bae+98,10.0-1-g7408a83+3,10.0-1-gc1e0f5a+19,10.0-1-gdb4482e+14,10.0-11-g3947115+2,10.0-12-g8719d8b+2,10.0-15-ga3f480f+1,10.0-2-g4f67435,10.0-2-gcb4bc6c+26,10.0-28-gf7f57a9+1,10.0-3-g1bbe32c+14,10.0-3-g5b46d21,10.0-4-g027f45f+5,10.0-4-g86f66b5+2,10.0-4-gc4fccf3+24,10.0-40-g4349866+2,10.0-5-g766159b,10.0-5-gca2295e+25,10.0-6-g462a451+1
LSSTDataManagementBasePackage
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
lsst.ctrl.events::EventAppender Class Reference

log4cxx appender class which sends logging messages out on the event stream More...

#include <EventAppender.h>

Inheritance diagram for lsst.ctrl.events::EventAppender:

Public Member Functions

 EventAppender ()
 
 ~EventAppender ()
 destructor More...
 
virtual void setOption (const LogString &option, const LogString &value)
 log4cxx methods for setting options; for this class options are BROKER - host name of event broker (required) PORT - port number on which the event broker is listening (optional) TOPIC - topic name on which to send logging messages (optional) More...
 
virtual void activateOptions (log4cxx::helpers::Pool &p)
 prepares EventAppender for use More...
 
void append (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
 handles a log event. For this appender, this means sending an event to the logging topic. More...
 
void close ()
 shuts down the appender More...
 
bool requiresLayout () const
 this appender does not require a layout to format the text More...
 

Protected Member Functions

lsst::ctrl::events::EventTransmittergetTransmitter ()
 

Protected Attributes

lsst::ctrl::events::EventTransmitter_transmitter
 
LogString _broker
 
LogString _topic
 
int _port
 

Detailed Description

log4cxx appender class which sends logging messages out on the event stream

Definition at line 75 of file EventAppender.h.

Constructor & Destructor Documentation

lsst.ctrl.events::EventAppender::EventAppender ( )

Definition at line 63 of file EventAppender.cc.

lsst.ctrl.events::EventAppender::~EventAppender ( )

destructor

Definition at line 71 of file EventAppender.cc.

71  {
72  if (_transmitter != NULL)
73  delete _transmitter;
74  _transmitter = NULL;
75 }
lsst::ctrl::events::EventTransmitter * _transmitter

Member Function Documentation

void lsst.ctrl.events::EventAppender::activateOptions ( log4cxx::helpers::Pool &  p)
virtual

prepares EventAppender for use

Definition at line 89 of file EventAppender.cc.

90 {
91  if (_broker.empty()) {
92  LogLog::error((LogString) LOG4CXX_STR("Appender requires broker option to be specified"));
93  return;
94  }
95  try {
96  _transmitter = new EventTransmitter(_broker, _topic, _port);
97  } catch (pexExceptions::RuntimeError& rte) {
98  std::ostringstream msg;
99  msg << "Couldn't reach broker " << _broker << " at port " << _port;
100  LogLog::error((LogString) LOG4CXX_STR(msg.str()));
101  _transmitter = NULL;
102  }
103 }
lsst::ctrl::events::EventTransmitter * _transmitter
def error
Definition: log.py:108
void lsst.ctrl.events::EventAppender::append ( const spi::LoggingEventPtr &  event,
log4cxx::helpers::Pool &  p 
)

handles a log event. For this appender, this means sending an event to the logging topic.

Definition at line 117 of file EventAppender.cc.

117  {
118  PropertySet::Ptr psp(new PropertySet);
119 
120  psp->set("logger", event->getLoggerName());
121  psp->set("message", event->getMessage());
122  psp->set("timestamp", event->getTimeStamp());
123  psp->set("threadname", event->getThreadName());
124  psp->set("level", event->getLevel()->toInt());
125 
126  spi::LocationInfo location = event->getLocationInformation();
127 
128  PropertySet::Ptr loc(new PropertySet);
129  loc->set("filename", location.getFileName());
130  loc->set("classname", location.getClassName());
131  loc->set("methodname", location.getMethodName());
132  loc->set("linenumber", location.getLineNumber());
133 
134  psp->set("location", loc);
135 
137 
138  EventTransmitter *transmitter = getTransmitter();
139 
140  if (_transmitter == NULL)
141  return;
142 
143  try {
144  transmitter->publishEvent(e);
145  } catch (Exception& e) {
146  LogLog::error((LogString) LOG4CXX_STR("event transmitter failed"));
147  delete _transmitter;
148  _transmitter = NULL;
149  }
150 }
lsst::ctrl::events::EventTransmitter * _transmitter
def error
Definition: log.py:108
Representation of an LSST Event.
Definition: Event.h:62
Class for storing generic metadata.
Definition: PropertySet.h:82
boost::shared_ptr< PropertySet > Ptr
Definition: PropertySet.h:90
lsst::ctrl::events::EventTransmitter * getTransmitter()
void lsst.ctrl.events::EventAppender::close ( )

shuts down the appender

Definition at line 152 of file EventAppender.cc.

152  {
153  if (this->closed)
154  return;
155  this->closed = true;
156 }
EventTransmitter * lsst.ctrl.events::EventAppender::getTransmitter ( )
protected

Definition at line 106 of file EventAppender.cc.

106  {
107  if (_transmitter == NULL) {
108  try {
109  _transmitter = new EventTransmitter(_broker, _topic, _port);
110  } catch (Exception& e) {
111  }
112  }
113  return _transmitter;
114 }
lsst::ctrl::events::EventTransmitter * _transmitter
bool lsst.ctrl.events::EventAppender::requiresLayout ( ) const
inline

this appender does not require a layout to format the text

Returns
always returns false

Definition at line 119 of file EventAppender.h.

119 { return false; }
void lsst.ctrl.events::EventAppender::setOption ( const LogString &  option,
const LogString &  value 
)
virtual

log4cxx methods for setting options; for this class options are BROKER - host name of event broker (required) PORT - port number on which the event broker is listening (optional) TOPIC - topic name on which to send logging messages (optional)

Parameters
optionoption name
valueoption value

Definition at line 77 of file EventAppender.cc.

77  {
78  if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("BROKER"), LOG4CXX_STR("broker"))) {
79  _broker = value;
80  } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("PORT"), LOG4CXX_STR("port"))) {
81  _port = atoi(value.c_str());
82  } else if (StringHelper::equalsIgnoreCase(option, LOG4CXX_STR("TOPIC"), LOG4CXX_STR("topic"))) {
83  _topic = value;
84  } else {
85  AppenderSkeleton::setOption(option, value);
86  }
87 }

Member Data Documentation

LogString lsst.ctrl.events::EventAppender::_broker
protected

Definition at line 125 of file EventAppender.h.

int lsst.ctrl.events::EventAppender::_port
protected

Definition at line 127 of file EventAppender.h.

LogString lsst.ctrl.events::EventAppender::_topic
protected

Definition at line 126 of file EventAppender.h.

lsst::ctrl::events::EventTransmitter* lsst.ctrl.events::EventAppender::_transmitter
protected

Definition at line 123 of file EventAppender.h.


The documentation for this class was generated from the following files: