  | 
  
    ATLAS Offline Software
    
   | 
 
 
 
 
MessageSvc used by the HLT applications.  
 More...
#include <TrigMessageSvc.h>
 | 
| struct   | MsgAry | 
|   | Private helper class to keep the count of messages of a type (MSG::LEVEL).  More...
  | 
|   | 
 | 
| typedef std::map< std::string, int, std::less<> >  | ThresholdMap | 
|   | 
 | 
|   | TrigMessageSvc (const std::string &name, ISvcLocator *svcloc) | 
|   | 
| virtual StatusCode  | reinitialize () override | 
|   | 
| virtual StatusCode  | initialize () override | 
|   | 
| virtual StatusCode  | start () override | 
|   | 
| virtual StatusCode  | stop () override | 
|   | 
| virtual StatusCode  | finalize () override | 
|   | 
| virtual void  | handle (const Incident &incident) override | 
|   | 
| virtual void  | reportMessage (const Message &message) override | 
|   | 
| virtual void  | reportMessage (const Message &msg, int outputLevel) override | 
|   | 
| virtual void  | reportMessage (std::string source, int type, std::string message) override | 
|   | 
| virtual std::ostream *defaultStream  | ATLAS_NOT_CONST_THREAD_SAFE () const override | 
|   | 
| virtual void  | setDefaultStream (std::ostream *stream) override | 
|   | 
| virtual int  | outputLevel () const override | 
|   | 
| virtual int  | outputLevel (std::string_view source) const override | 
|   | 
| virtual void  | setOutputLevel (int new_level) override | 
|   | 
| virtual void  | setOutputLevel (std::string_view source, int new_level) override | 
|   | 
| virtual int  | messageCount (MSG::Level logLevel) const override | 
|   | 
| virtual bool  | useColor () const override | 
|   | 
| virtual std::string  | getLogColor (int) const override | 
|   | 
 | 
| virtual void  | reportMessage (const StatusCode &, std::string_view) override | 
|   | Not supported by this implementation.  More...
  | 
|   | 
| virtual void  | insertMessage (const StatusCode &, Message) override | 
|   | 
| virtual void  | eraseMessage () override | 
|   | 
| virtual void  | eraseMessage (const StatusCode &) override | 
|   | 
| virtual void  | eraseMessage (const StatusCode &, const Message &) override | 
|   | 
| virtual void  | insertStream (int, std::string, std::ostream *) override | 
|   | 
| virtual void  | eraseStream () override | 
|   | 
| virtual void  | eraseStream (int) override | 
|   | 
| virtual void  | eraseStream (int, std::ostream *) override | 
|   | 
| virtual void  | eraseStream (std::ostream *) override | 
|   | 
 | 
| Gaudi::Property< std::string >  | m_defaultFormat | 
|   | 
| Gaudi::Property< std::string >  | m_ersFormat | 
|   | 
| Gaudi::Property< std::string >  | m_defaultTimeFormat | 
|   | 
| Gaudi::Property< bool >  | m_stats {this, "showStats", false, "Show message statistics"} | 
|   | 
| Gaudi::Property< unsigned int >  | m_statLevel | 
|   | 
| Gaudi::Property< unsigned int >  | m_publishLevel | 
|   | 
| Gaudi::Property< unsigned int >  | m_eventIDLevel | 
|   | 
| Gaudi::Property< bool >  | m_color | 
|   | 
| Gaudi::Property< bool >  | m_suppress {this, "enableSuppression", false, "Enable message suppression"} | 
|   | 
| Gaudi::Property< bool >  | m_suppressRunningOnly | 
|   | 
| std::array< Gaudi::Property< std::vector< std::string > >, MSG::NUM_LEVELS >  | m_thresholdProp | 
|   | 
| std::array< Gaudi::Property< int >, MSG::NUM_LEVELS >  | m_msgLimit | 
|   | 
| std::array< Gaudi::Property< std::vector< std::string > >, MSG::NUM_LEVELS >  | m_useERS | 
|   | Special properties to control output to ERS of individual sources.  More...
  | 
|   | 
| Gaudi::Property< int >  | m_ersEventLimit | 
|   | 
| std::ostream *  | m_defaultStream = &std::cout | 
|   | Pointer to the output stream.  More...
  | 
|   | 
| ThresholdMap  | m_thresholdMap | 
|   | Output level threshold map.  More...
  | 
|   | 
| std::map< std::string, MsgAry >  | m_sourceMap | 
|   | counts per source  More...
  | 
|   | 
| std::array< int, MSG::NUM_LEVELS >  | m_msgCount {} | 
|   | counts per level  More...
  | 
|   | 
| std::map< size_t, unsigned int >  | m_msgHashCount | 
|   | counts per message hash  More...
  | 
|   | 
| std::unordered_map< EventContext::ContextID_t, std::pair< EventContext::ContextEvt_t, MsgAry > >  | m_slotMsgCount | 
|   | counts per slot and level  More...
  | 
|   | 
| bool  | m_doPublish {false} | 
|   | are we publishing message statistics?  More...
  | 
|   | 
| bool  | m_doSuppress {false} | 
|   | is suppression currently enabled?  More...
  | 
|   | 
| TH1I *  | m_msgCountHist {nullptr} | 
|   | Message counting per level histogram.  More...
  | 
|   | 
| TH2I *  | m_msgCountSrcHist {nullptr} | 
|   | Message counting per message source.  More...
  | 
|   | 
| std::recursive_mutex  | m_thresholdMapMutex | 
|   | 
| bool  | m_asyncReporting {false} | 
|   | (  More...
  | 
|   | 
| std::thread  | m_thread | 
|   | Thread for asynchronous reporting.  More...
  | 
|   | 
| tbb::concurrent_bounded_queue< std::function< void()> >  | m_messageActionsQueue | 
|   | 
MessageSvc used by the HLT applications. 
This MessageSvc implementation it used by the HLT applications. It has some additional features compared to the default Gaudi MessageSvc. Most notably the forwarding of messages to the TDAQ ERS message system.
The message suppression is configured with the following parameters: 
- Parameters
 - 
  
    | <level>Limit | = 0: no message suppression for <level>  | 
    | <level>Limit | = N > 0: suppress messages after N messages (per source)  | 
    | <level>Limit | = -N < 0: use logarithmic suppression after N messages (per message) | 
  
   
Note, that the logarithmic suppression works on a per-message basis (ignoring any digits in the message).
- Author
 - Iain Last, Werner Wiedenmann, Frank Winklmeier 
 
Definition at line 56 of file TrigMessageSvc.h.
 
◆ ThresholdMap
◆ TrigMessageSvc()
      
        
          | TrigMessageSvc::TrigMessageSvc  | 
          ( | 
          const std::string &  | 
          name,  | 
        
        
           | 
           | 
          ISvcLocator *  | 
          svcloc  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Definition at line 38 of file TrigMessageSvc.cxx.
   39     base_class(
name, svcloc)
 
   41   m_outputLevel.declareUpdateHandler([svcloc](Gaudi::Details::PropertyBase&) {
 
   42     SmartIF<IAppMgrUI> app = svcloc;
 
   43     if (app) app->outputLevelUpdate();
 
 
 
 
◆ asyncReporting()
  
  
      
        
          | void TrigMessageSvc::asyncReporting  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
private   | 
  
 
 
◆ ATLAS_NOT_CONST_THREAD_SAFE()
  
  
      
        
          | virtual std::ostream* defaultStream TrigMessageSvc::ATLAS_NOT_CONST_THREAD_SAFE  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inlineoverridevirtual   | 
  
 
 
◆ bookHistograms()
  
  
      
        
          | void TrigMessageSvc::bookHistograms  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
private   | 
  
 
Definition at line 114 of file TrigMessageSvc.cxx.
  117   if ( 
histSvc.retrieve().isFailure() ) {
 
  118     reportMessage(
name(), MSG::WARNING, 
"Cannot find THistSvc. Message stats will not be published.");
 
  124   const std::string 
path = 
"/EXPERT/HLTFramework/" + 
name() + 
"/";
 
  126   m_msgCountHist = 
new TH1I(
"MessageCount", 
"Messages while RUNNING;Severity;Count",
 
  127                             nLevelBins, 0, nLevelBins);
 
  129   const int nSrcBins = 1;
 
  130   m_msgCountSrcHist = 
new TH2I(
"MessageCountBySource", 
"Messages while RUNNING;Severity;Source",
 
  131                                nLevelBins, 0, nLevelBins, nSrcBins, 0, nSrcBins);
 
  139     reportMessage(
name(), MSG::WARNING, 
"Cannot register monitoring histogram 'MessageCount'");
 
  142     reportMessage(
name(), MSG::WARNING, 
"Cannot register monitoring histogram 'MessageCountBySource'");
 
 
 
 
◆ eraseMessage() [1/3]
  
  
      
        
          | virtual void TrigMessageSvc::eraseMessage  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inlineoverridevirtual   | 
  
 
 
◆ eraseMessage() [2/3]
  
  
      
        
          | virtual void TrigMessageSvc::eraseMessage  | 
          ( | 
          const StatusCode &  | 
           | ) | 
           | 
         
       
   | 
  
inlineoverridevirtual   | 
  
 
 
◆ eraseMessage() [3/3]
  
  
      
        
          | virtual void TrigMessageSvc::eraseMessage  | 
          ( | 
          const StatusCode &  | 
          ,  | 
         
        
           | 
           | 
          const Message &  | 
            | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inlineoverridevirtual   | 
  
 
 
◆ eraseStream() [1/4]
  
  
      
        
          | virtual void TrigMessageSvc::eraseStream  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inlineoverridevirtual   | 
  
 
 
◆ eraseStream() [2/4]
  
  
      
        
          | virtual void TrigMessageSvc::eraseStream  | 
          ( | 
          int  | 
           | ) | 
           | 
         
       
   | 
  
inlineoverridevirtual   | 
  
 
 
◆ eraseStream() [3/4]
  
  
      
        
          | virtual void TrigMessageSvc::eraseStream  | 
          ( | 
          int  | 
          ,  | 
         
        
           | 
           | 
          std::ostream *  | 
            | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inlineoverridevirtual   | 
  
 
 
◆ eraseStream() [4/4]
  
  
      
        
          | virtual void TrigMessageSvc::eraseStream  | 
          ( | 
          std::ostream *  | 
           | ) | 
           | 
         
       
   | 
  
inlineoverridevirtual   | 
  
 
 
◆ finalize()
  
  
      
        
          | StatusCode TrigMessageSvc::finalize  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
overridevirtual   | 
  
 
Definition at line 207 of file TrigMessageSvc.cxx.
  210   std::ostringstream 
os;
 
  213     os << 
"Summarizing all message counts" 
  214        << 
" (severity >= " << levelNames[
m_statLevel] << 
")" << std::endl;
 
  217     os << 
"Listing sources of suppressed message: " << std::endl;
 
  220   os << 
"=====================================================" << std::endl;
 
  221   os << 
" Message Source              |   Level |    Count" << std::endl;
 
  222   os << 
"-----------------------------+---------+-------------" << std::endl;
 
  232         os.setf(std::ios_base::left, std::ios_base::adjustfield);
 
  237         os.setf(std::ios_base::right, std::ios_base::adjustfield);
 
  238         os << levelNames[
ic];
 
  242         os << itr->second.msg[
ic];
 
  249   os << 
"=====================================================" << std::endl;
 
  254   return StatusCode::SUCCESS;
 
 
 
 
◆ getLogColor()
  
  
      
        
          | virtual std::string TrigMessageSvc::getLogColor  | 
          ( | 
          int  | 
           | ) | 
           const | 
         
       
   | 
  
inlineoverridevirtual   | 
  
 
 
◆ handle()
  
  
      
        
          | void TrigMessageSvc::handle  | 
          ( | 
          const Incident &  | 
          incident | ) | 
           | 
         
       
   | 
  
overridevirtual   | 
  
 
 
◆ i_reportERS()
  
  
      
        
          | void TrigMessageSvc::i_reportERS  | 
          ( | 
          const Message &  | 
          msg | ) | 
           const | 
         
       
   | 
  
private   | 
  
 
Report message to online messaging system (ERS) 
Definition at line 375 of file TrigMessageSvc.cxx.
  386   const char* function_name = 
"";
 
  387   const int line_number = msgHash(
msg);
 
  388   const char* package_name = 
"HLT";
 
  389   ers::LocalContext hlt_context_info(package_name, 
filename, line_number, function_name);
 
  399   std::ostringstream oss;
 
  401   ers::HLTMessage ersMsg(hlt_context_info, oss.str());
 
  402   ersMsg.add_qualifier(
"HLT"); 
 
  405   switch (
msg.getType()) {
 
  410   case MSG::WARNING: ers::warning(ersMsg); 
break;
 
  414     std::ostringstream oss;
 
  415     oss << 
"Unknown message severity level: " << 
msg.getType() << 
" Original message was: " << 
m;
 
  416     ers::error(ers::HLTMessage(ERS_HERE, oss.str()));
 
 
 
 
◆ i_reportMessage()
  
  
      
        
          | void TrigMessageSvc::i_reportMessage  | 
          ( | 
          const Message &  | 
          msg,  | 
         
        
           | 
           | 
          int  | 
          outputLevel  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
private   | 
  
 
Internal implementation of reportMessage(const Message&,int) without lock. 
Definition at line 283 of file TrigMessageSvc.cxx.
  285   const int key = 
msg.getType();
 
  290   std::unique_ptr<Message> newMessage;
 
  301         if (nmsg > msgLimit) doPrint = 
false;
 
  302         if (nmsg == msgLimit) {
 
  303           std::string txt = levelNames[
key] + 
" message limit (" + 
std::to_string(msgLimit) +
 
  304                             ") reached for " + 
msg.getSource() + 
". Suppressing further output.";
 
  305           newMessage = std::make_unique<Message>(
msg.getSource(), MSG::WARNING, std::move(txt));
 
  306           cmsg = newMessage.get();
 
  310     else if (msgLimit < 0) { 
 
  312       const unsigned int mh = msgHash(*cmsg);
 
  321       if (nmsg == abs(msgLimit)) {
 
  322         std::ostringstream 
os;
 
  323         os << 
msg.getMessage() << 
" [Message limit (" << abs(msgLimit)
 
  324            << 
") reached. Log-suppression of further output.]";
 
  325         newMessage = std::make_unique<Message>(
msg.getSource(), 
msg.getType(), 
os.str());
 
  326         cmsg = newMessage.get();
 
  328       else if (nmsg > abs(msgLimit)) {
 
  329         const int everyNth = (
int)exp10((
int)log10(nmsg));
 
  330         if ((nmsg % everyNth) == 0) {
 
  331           std::ostringstream 
os;
 
  332           os << 
msg.getMessage() << 
" [suppressed " << everyNth << 
" similar messages]";
 
  333           newMessage = std::make_unique<Message>(
msg.getSource(), 
msg.getType(), 
os.str());
 
  334           cmsg = newMessage.get();
 
  349     (*m_defaultStream) << *cmsg << std::endl << 
std::flush;
 
 
 
 
◆ initialize()
  
  
      
        
          | StatusCode TrigMessageSvc::initialize  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
overridevirtual   | 
  
 
Definition at line 54 of file TrigMessageSvc.cxx.
   57   if (
sc.isFailure()) 
return sc;
 
   60   sc = incSvc.retrieve();
 
   71     std::cout << 
"TrigMessageSvc WARNING: Colors are not supported by TrigMessageSvc" << std::endl;
 
   73   return StatusCode::SUCCESS;
 
 
 
 
◆ insertMessage()
  
  
      
        
          | virtual void TrigMessageSvc::insertMessage  | 
          ( | 
          const StatusCode &  | 
          ,  | 
         
        
           | 
           | 
          Message  | 
            | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inlineoverridevirtual   | 
  
 
 
◆ insertStream()
  
  
      
        
          | virtual void TrigMessageSvc::insertStream  | 
          ( | 
          int  | 
          ,  | 
         
        
           | 
           | 
          std::string  | 
          ,  | 
         
        
           | 
           | 
          std::ostream *  | 
            | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inlineoverridevirtual   | 
  
 
 
◆ messageCount()
  
  
      
        
          | int TrigMessageSvc::messageCount  | 
          ( | 
          MSG::Level  | 
          logLevel | ) | 
           const | 
         
       
   | 
  
overridevirtual   | 
  
 
 
◆ outputLevel() [1/2]
  
  
      
        
          | int TrigMessageSvc::outputLevel  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
overridevirtual   | 
  
 
 
◆ outputLevel() [2/2]
  
  
      
        
          | int TrigMessageSvc::outputLevel  | 
          ( | 
          std::string_view  | 
          source | ) | 
           const | 
         
       
   | 
  
overridevirtual   | 
  
 
 
◆ passErsFilter()
  
  
      
        
          | bool TrigMessageSvc::passErsFilter  | 
          ( | 
          const std::string &  | 
          source,  | 
         
        
           | 
           | 
          const std::vector< std::string > &  | 
          filter  | 
         
        
           | 
          ) | 
           |  const | 
         
       
   | 
  
private   | 
  
 
Definition at line 465 of file TrigMessageSvc.cxx.
  468   if (
filter.empty()) 
return false; 
 
  470   if (
filter.size() == 1 && (*
it) == 
"*") 
return true; 
 
  474     if ((*
it) == 
"*") pass = 
true;           
 
  476     if (
"!" + 
source == (*
it)) 
return false; 
 
 
 
 
◆ passErsLimit()
  
  
      
        
          | bool TrigMessageSvc::passErsLimit  | 
          ( | 
          const Message &  | 
          msg | ) | 
           | 
         
       
   | 
  
private   | 
  
 
Definition at line 481 of file TrigMessageSvc.cxx.
  485   const EventContext::ContextID_t slot = 
msg.getEventSlot();
 
  486   const EventContext::ContextEvt_t 
evt = 
msg.getEventNumber();
 
  491   if ( itr->second.first != 
evt ) {
 
  492     itr->second = {
evt, MsgAry()};
 
  496   const int N = ++itr->second.second.msg[
msg.getType()];
 
 
 
 
◆ reinitialize()
  
  
      
        
          | StatusCode TrigMessageSvc::reinitialize  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
overridevirtual   | 
  
 
Definition at line 76 of file TrigMessageSvc.cxx.
   78   m_state = Gaudi::StateMachine::OFFLINE;
 
   80   if ( 
sc.isSuccess() ) m_state = Gaudi::StateMachine::INITIALIZED;
 
 
 
 
◆ reportMessage() [1/4]
  
  
      
        
          | void TrigMessageSvc::reportMessage  | 
          ( | 
          const Message &  | 
          message | ) | 
           | 
         
       
   | 
  
overridevirtual   | 
  
 
 
◆ reportMessage() [2/4]
  
  
      
        
          | void TrigMessageSvc::reportMessage  | 
          ( | 
          const Message &  | 
          msg,  | 
         
        
           | 
           | 
          int  | 
          outputLevel  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
overridevirtual   | 
  
 
 
◆ reportMessage() [3/4]
  
  
      
        
          | virtual void TrigMessageSvc::reportMessage  | 
          ( | 
          const StatusCode &  | 
          ,  | 
         
        
           | 
           | 
          std::string_view  | 
            | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inlineoverridevirtual   | 
  
 
 
◆ reportMessage() [4/4]
  
  
      
        
          | void TrigMessageSvc::reportMessage  | 
          ( | 
          std::string  | 
          source,  | 
         
        
           | 
           | 
          int  | 
          type,  | 
         
        
           | 
           | 
          std::string  | 
          message  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
overridevirtual   | 
  
 
 
◆ setDefaultStream()
  
  
      
        
          | virtual void TrigMessageSvc::setDefaultStream  | 
          ( | 
          std::ostream *  | 
          stream | ) | 
           | 
         
       
   | 
  
inlineoverridevirtual   | 
  
 
 
◆ setOutputLevel() [1/2]
  
  
      
        
          | void TrigMessageSvc::setOutputLevel  | 
          ( | 
          int  | 
          new_level | ) | 
           | 
         
       
   | 
  
overridevirtual   | 
  
 
 
◆ setOutputLevel() [2/2]
  
  
      
        
          | void TrigMessageSvc::setOutputLevel  | 
          ( | 
          std::string_view  | 
          source,  | 
         
        
           | 
           | 
          int  | 
          new_level  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
overridevirtual   | 
  
 
 
◆ setupLimits()
  
  
      
        
          | void TrigMessageSvc::setupLimits  | 
          ( | 
          Gaudi::Details::PropertyBase &  | 
          prop | ) | 
           | 
         
       
   | 
  
private   | 
  
 
Definition at line 147 of file TrigMessageSvc.cxx.
  151   if (prop.name() == 
"alwaysLimit") {
 
  152     Gaudi::Property<int>* 
p = 
dynamic_cast<Gaudi::Property<int>*
>(&prop);
 
  153     if (
p && 
p->value() != 0) {
 
  154       std::cout << 
"TrigMessageSvc ERROR: cannot suppress ALWAYS messages" << std::endl;
 
  158   else if (prop.name() == 
"defaultLimit") {
 
  165   else if (prop.name() != 
"fatalLimit" && prop.name() != 
"errorLimit" &&
 
  166            prop.name() != 
"warningLimit" && prop.name() == 
"infoLimit" &&
 
  167            prop.name() == 
"debugLimit" && prop.name() == 
"verboseLimit") {
 
  168     std::cout << 
"TrigMessageSvc ERROR: Unknown message limit parameter: " << prop.name()
 
 
 
 
◆ setupThreshold()
  
  
      
        
          | void TrigMessageSvc::setupThreshold  | 
          ( | 
          Gaudi::Details::PropertyBase &  | 
          prop | ) | 
           | 
         
       
   | 
  
private   | 
  
 
Definition at line 174 of file TrigMessageSvc.cxx.
  176   static const std::array<std::pair<const char*, MSG::Level>, 7> tbl{{{
"setFatal", 
MSG::FATAL},
 
  177                                                                       {
"setError", MSG::ERROR},
 
  178                                                                       {
"setWarning", MSG::WARNING},
 
  184   auto i = std::find_if(
 
  186       [&](
const std::pair<const char*, MSG::Level>& 
t) { 
return prop.name() == 
t.first; });
 
  188     std::cerr << 
"TrigMessageSvc ERROR: Unknown message threshold parameter: " << prop.name()
 
  194   Gaudi::Property<std::vector<std::string>>* sap =
 
  195       dynamic_cast<Gaudi::Property<std::vector<std::string>
>*>(&prop);
 
  197     std::cerr << 
"could not dcast " << prop.name()
 
  198               << 
" to a Gaudi::Property<std::vector<std::string>> (which it " 
 
 
 
◆ start()
  
  
      
        
          | StatusCode TrigMessageSvc::start  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
overridevirtual   | 
  
 
 
◆ stop()
  
  
      
        
          | StatusCode TrigMessageSvc::stop  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
overridevirtual   | 
  
 
 
◆ useColor()
  
  
      
        
          | virtual bool TrigMessageSvc::useColor  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inlineoverridevirtual   | 
  
 
 
◆ m_asyncReporting
  
  
      
        
          | bool TrigMessageSvc::m_asyncReporting {false} | 
         
       
   | 
  
private   | 
  
 
( 
- See also
 - MsgStream::doOutput). Async reporting active 
 
Definition at line 196 of file TrigMessageSvc.h.
 
 
◆ m_color
  
  
      
        
          | Gaudi::Property<bool> TrigMessageSvc::m_color | 
         
       
   | 
  
private   | 
  
 
Initial value:{this, "useColors", false,
                                "Colors are not supported by TrigMessageSvc"}
 
Definition at line 121 of file TrigMessageSvc.h.
 
 
◆ m_defaultFormat
  
  
      
        
          | Gaudi::Property<std::string> TrigMessageSvc::m_defaultFormat | 
         
       
   | 
  
private   | 
  
 
Initial value:{this, "Format", Message::getDefaultFormat(),
                                               "Default message format"}
 
Definition at line 108 of file TrigMessageSvc.h.
 
 
◆ m_defaultStream
  
  
      
        
          | std::ostream* TrigMessageSvc::m_defaultStream = &std::cout | 
         
       
   | 
  
private   | 
  
 
 
◆ m_defaultTimeFormat
  
  
      
        
          | Gaudi::Property<std::string> TrigMessageSvc::m_defaultTimeFormat | 
         
       
   | 
  
private   | 
  
 
Initial value:{
      this, "timeFormat", Message::getDefaultTimeFormat(), "Message time format"}
 
Definition at line 112 of file TrigMessageSvc.h.
 
 
◆ m_doPublish
  
  
      
        
          | bool TrigMessageSvc::m_doPublish {false} | 
         
       
   | 
  
private   | 
  
 
 
◆ m_doSuppress
  
  
      
        
          | bool TrigMessageSvc::m_doSuppress {false} | 
         
       
   | 
  
private   | 
  
 
 
◆ m_ersEventLimit
  
  
      
        
          | Gaudi::Property<int> TrigMessageSvc::m_ersEventLimit | 
         
       
   | 
  
private   | 
  
 
Initial value:{this, "ersPerEventLimit", -1,
     "Maximum number of messages (per event and level) that are forwarded to ERS (-1: disabled)"}
 
Definition at line 165 of file TrigMessageSvc.h.
 
 
◆ m_ersFormat
  
  
      
        
          | Gaudi::Property<std::string> TrigMessageSvc::m_ersFormat | 
         
       
   | 
  
private   | 
  
 
Initial value:{this, "ErsFormat", Message::getDefaultFormat(),
                                           "ERS message format"}
 
Definition at line 110 of file TrigMessageSvc.h.
 
 
◆ m_eventIDLevel
  
  
      
        
          | Gaudi::Property<unsigned int> TrigMessageSvc::m_eventIDLevel | 
         
       
   | 
  
private   | 
  
 
Initial value:
                                               "Print event ID for this and higher message levels"}
 
Definition at line 119 of file TrigMessageSvc.h.
 
 
◆ m_messageActionsQueue
  
  
      
        
          | tbb::concurrent_bounded_queue<std::function<void()> > TrigMessageSvc::m_messageActionsQueue | 
         
       
   | 
  
private   | 
  
 
 
◆ m_msgCount
  
  
      
        
          | std::array<int, MSG::NUM_LEVELS> TrigMessageSvc::m_msgCount {} | 
         
       
   | 
  
private   | 
  
 
 
◆ m_msgCountHist
  
  
      
        
          | TH1I* TrigMessageSvc::m_msgCountHist {nullptr} | 
         
       
   | 
  
private   | 
  
 
 
◆ m_msgCountSrcHist
  
  
      
        
          | TH2I* TrigMessageSvc::m_msgCountSrcHist {nullptr} | 
         
       
   | 
  
private   | 
  
 
 
◆ m_msgHashCount
  
  
      
        
          | std::map<size_t, unsigned int> TrigMessageSvc::m_msgHashCount | 
         
       
   | 
  
private   | 
  
 
 
◆ m_msgLimit
  
  
      
        
          | std::array<Gaudi::Property<int>, MSG::NUM_LEVELS> TrigMessageSvc::m_msgLimit | 
         
       
   | 
  
private   | 
  
 
Initial value:{{{this, "defaultLimit", 500},
                                                                {this, "verboseLimit", 500},
                                                                {this, "debugLimit", 500},
                                                                {this, "infoLimit", 500},
                                                                {this, "warningLimit", 500},
                                                                {this, "errorLimit", 500},
                                                                {this, "fatalLimit", 500},
                                                                {this, "alwaysLimit", 0}}}
 
Definition at line 137 of file TrigMessageSvc.h.
 
 
◆ m_publishLevel
  
  
      
        
          | Gaudi::Property<unsigned int> TrigMessageSvc::m_publishLevel | 
         
       
   | 
  
private   | 
  
 
Initial value:
                                               "Publish message statistics for this and higher message levels"}
 
Definition at line 117 of file TrigMessageSvc.h.
 
 
◆ m_slotMsgCount
  
  
      
        
          | std::unordered_map<EventContext::ContextID_t, std::pair<EventContext::ContextEvt_t, MsgAry> > TrigMessageSvc::m_slotMsgCount | 
         
       
   | 
  
private   | 
  
 
 
◆ m_sourceMap
  
  
      
        
          | std::map<std::string, MsgAry> TrigMessageSvc::m_sourceMap | 
         
       
   | 
  
private   | 
  
 
 
◆ m_statLevel
  
  
      
        
          | Gaudi::Property<unsigned int> TrigMessageSvc::m_statLevel | 
         
       
   | 
  
private   | 
  
 
Initial value:{this, "statLevel", 0,
                                            "Show total message statistics for >= level"}
 
Definition at line 115 of file TrigMessageSvc.h.
 
 
◆ m_stats
  
  
      
        
          | Gaudi::Property<bool> TrigMessageSvc::m_stats {this, "showStats", false, "Show message statistics"} | 
         
       
   | 
  
private   | 
  
 
 
◆ m_suppress
  
  
      
        
          | Gaudi::Property<bool> TrigMessageSvc::m_suppress {this, "enableSuppression", false, "Enable message suppression"} | 
         
       
   | 
  
private   | 
  
 
 
◆ m_suppressRunningOnly
  
  
      
        
          | Gaudi::Property<bool> TrigMessageSvc::m_suppressRunningOnly | 
         
       
   | 
  
private   | 
  
 
Initial value:{this, "suppressRunningOnly", true,
                                              "Use message suppression only during RUNNING state"}
 
Definition at line 124 of file TrigMessageSvc.h.
 
 
◆ m_thread
  
  
      
        
          | std::thread TrigMessageSvc::m_thread | 
         
       
   | 
  
private   | 
  
 
 
◆ m_thresholdMap
◆ m_thresholdMapMutex
  
  
      
        
          | std::recursive_mutex TrigMessageSvc::m_thresholdMapMutex | 
         
       
   | 
  
mutableprivate   | 
  
 
 
◆ m_thresholdProp
  
  
      
        
          | std::array<Gaudi::Property<std::vector<std::string> >, MSG::NUM_LEVELS> TrigMessageSvc::m_thresholdProp | 
         
       
   | 
  
private   | 
  
 
Initial value:{
      {{},
       {this, "setVerbose"},
       {this, "setDebug"},
       {this, "setInfo"},
       {this, "setWarning"},
       {this, "setError"},
       {this, "setFatal"},
       {this, "setAlways"}}}
 
Definition at line 127 of file TrigMessageSvc.h.
 
 
◆ m_useERS
  
  
      
        
          | std::array<Gaudi::Property<std::vector<std::string> >, MSG::NUM_LEVELS> TrigMessageSvc::m_useERS | 
         
       
   | 
  
private   | 
  
 
Initial value:{
      {{},
       {this, "useErsVerbose", {}},
       {this, "useErsDebug", {}},
       {this, "useErsInfo", {}},
       {this, "useErsWarning", {}},
       {this, "useErsError", {}},
       {this, "useErsFatal", {}},
       {this, "useErsAlways", {}}}}
 
Special properties to control output to ERS of individual sources. 
The syntax is as follows (these are NOT regular expressions):
useErsFatal = [] # forward none (default) useErsFatal = ['*'] # forward all useErsFatal = ['CoreDumpSvc','MyAlg'] # forward these sources useErsFatal = ['*','!MyAlg'] # forward all except MyAlg 
Definition at line 155 of file TrigMessageSvc.h.
 
 
The documentation for this class was generated from the following files:
 
void setupThreshold(Gaudi::Details::PropertyBase &prop)
 
tbb::concurrent_bounded_queue< std::function< void()> > m_messageActionsQueue
 
path
python interpreter configuration --------------------------------------—
 
Gaudi::Property< std::string > m_defaultFormat
 
ThresholdMap m_thresholdMap
Output level threshold map.
 
std::array< int, MSG::NUM_LEVELS > m_msgCount
counts per level
 
TH1I * m_msgCountHist
Message counting per level histogram.
 
std::array< Gaudi::Property< int >, MSG::NUM_LEVELS > m_msgLimit
 
Gaudi::Property< std::string > m_ersFormat
 
std::string to_string(const SectorProjector proj)
 
std::recursive_mutex m_thresholdMapMutex
 
Scoped lock to be used for threaded histogram operations.
 
virtual StatusCode initialize() override
 
virtual int outputLevel() const override
 
Gaudi::Property< int > m_ersEventLimit
 
bool m_doPublish
are we publishing message statistics?
 
::StatusCode StatusCode
StatusCode definition for legacy code.
 
std::map< std::string, MsgAry > m_sourceMap
counts per source
 
TH2I * m_msgCountSrcHist
Message counting per message source.
 
virtual void setOutputLevel(int new_level) override
 
std::array< Gaudi::Property< std::vector< std::string > >, MSG::NUM_LEVELS > m_thresholdProp
 
virtual void reportMessage(const Message &message) override
 
Gaudi::Property< unsigned int > m_eventIDLevel
 
bool passErsFilter(const std::string &source, const std::vector< std::string > &filter) const
 
bool passErsLimit(const Message &msg)
 
Gaudi::Property< unsigned int > m_statLevel
 
void i_reportMessage(const Message &msg, int outputLevel)
Internal implementation of reportMessage(const Message&,int) without lock.
 
std::thread m_thread
Thread for asynchronous reporting.
 
static const std::string & type()
Incident type.
 
Gaudi::Property< std::string > m_defaultTimeFormat
 
Gaudi::Property< bool > m_stats
 
bool m_doSuppress
is suppression currently enabled?
 
void i_reportERS(const Message &msg) const
Report message to online messaging system (ERS)
 
std::ostream * m_defaultStream
Pointer to the output stream.
 
std::map< size_t, unsigned int > m_msgHashCount
counts per message hash
 
Gaudi::Property< unsigned int > m_publishLevel
 
std::unordered_map< EventContext::ContextID_t, std::pair< EventContext::ContextEvt_t, MsgAry > > m_slotMsgCount
counts per slot and level
 
void setupLimits(Gaudi::Details::PropertyBase &prop)
 
std::array< Gaudi::Property< std::vector< std::string > >, MSG::NUM_LEVELS > m_useERS
Special properties to control output to ERS of individual sources.
 
Gaudi::Property< bool > m_suppressRunningOnly
 
Gaudi::Property< bool > m_suppress
 
Gaudi::Property< bool > m_color