CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MessageLogger.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: Services
4 // Class : MessageLogger
5 //
6 // Implementation:
7 // <Notes on implementation>
8 //
9 // Original Author: W. Brown, M. Fischler
10 // Created: Fri Nov 11 16:42:39 CST 2005
11 //
12 // Change log
13 //
14 // 1 mf 5/12/06 In ctor, MessageDrop::debugEnabled is set to a
15 // sensible value in case action happens before modules
16 // are entered. If any modules enable debugs, such
17 // LogDebug messages are not immediately discarded
18 // (though they might be filtered at the server side).
19 //
20 // 2 mf 5/27/06 In preEventProcessing, change the syntax for
21 // runEvent from 1/23 to Run: 1 Event: 23
22 //
23 // 3 mf 6/27/06 PreModuleConstruction and PreSourceConstruction get
24 // correct module name
25 //
26 // 4 mf 6/27/06 Between events the run/event is previous one
27 //
28 // 5 mf 3/30/07 Support for --jobreport option
29 //
30 // 6 mf 6/6/07 Remove the catches for forgiveness of tracked
31 // parameters
32 //
33 // 7 mf 6/19/07 Support for --jobreport option
34 //
35 // 8 wmtan 6/25/07 Enable suppression for sources, just as for modules
36 //
37 // 9 mf 7/25/07 Modify names of the MessageLoggerQ methods, eg MLqLOG
38 //
39 //10 mf 6/18/07 Insert into the PostEndJob a possible SummarizeInJobReport
40 //
41 //11 mf 3/18/09 Fix wrong-sense test establishing anyDebugEnabled_
42 //
43 //12 mf 5/19/09 MessageService PSet Validation
44 //
45 //13 mf 5/26/09 Get parameters without throwing since validation
46 // will point out any problems and throw at that point
47 //
48 //14 mf 7/1/09 Establish module name and set up enables/suppresses
49 // for all possible calls supplying module descriptor
50 //
51 //14 mf 7/1/09 Establish pseudo-module name and set up
52 // enables/suppresses for other calls from framework
53 //15 mf 9/8/09 Clean up erroneous assignments of some callbacks
54 // for specific watch routines (eg PreXYZ called postXYZ)
55 //
56 //16 mf 9/8/09 Eliminate caching by descriptor address during ctor
57 // phases (since addresses are not yet permanent then)
58 //
59 //17 mf 11/2/10 Move preparation of module out to MessageDrop methods
60 // crj which will only be called if a message is actually
61 // issued. Caching of the work is done within MessageDrop
62 // so that case of many messages in a module is still fast.
63 //
64 //18 mf 11/2/10 Eliminated curr_module, since it was only being used
65 // as a local variable for preparation of name (never
66 // used to transfer info between functions) and change
67 // 17 obviates its need.
68 //
69 // 19 mf 11/30/10 Add a messageDrop->snapshot() when establishing
70 // crj module ctors, to cure bug 75836.
71 //
72 // 20 fwyzard 7/06/11 Add support fro dropping LogError messages
73 // on a per-module basis (needed at HLT)
74 
75 // system include files
76 // user include files
77 
79 
82 
85 
87 
91 
92 #include <sstream>
93 
94 using namespace edm;
95 using namespace edm::service;
96 
97 namespace edm {
98 namespace service {
99 
103 
104 //
105 // constructors and destructor
106 //
109  , ActivityRegistry & iRegistry
110  )
111  : debugEnabled_(false)
112  , messageServicePSetHasBeenValidated_(false)
113  , messageServicePSetValidatationResults_()
114  , nonModule_debugEnabled(false)
115  , nonModule_infoEnabled(true)
116  , nonModule_warningEnabled(true)
117  , nonModule_errorEnabled(true) // change log 20
118 {
119  // prepare cfg validation string for later use
121  messageServicePSetValidatationResults_ = validator(iPS); // change log 12
122 
123  typedef std::vector<std::string> vString;
124  vString empty_vString;
125  vString debugModules;
126  vString suppressDebug;
127  vString suppressInfo;
128  vString suppressWarning;
129  vString suppressError; // change log 20
130 
131  try { // change log 13
132  // decide whether a summary should be placed in job report
134  iPS.getUntrackedParameter<bool>("messageSummaryToJobReport", false);
135 
136  // grab list of debug-enabled modules
137  debugModules =
138  iPS.getUntrackedParameter<vString>("debugModules", empty_vString);
139 
140  // grab lists of suppressLEVEL modules
141  suppressDebug =
142  iPS.getUntrackedParameter<vString>("suppressDebug", empty_vString);
143 
144  suppressInfo =
145  iPS.getUntrackedParameter<vString>("suppressInfo", empty_vString);
146 
147  suppressWarning =
148  iPS.getUntrackedParameter<vString>("suppressWarning", empty_vString);
149 
150  suppressError = // change log 20
151  iPS.getUntrackedParameter<vString>("suppressError", empty_vString);
152  } catch (cms::Exception& e) { // change log 13
153  }
154 
155  // Use these lists to prepare a map to use in tracking suppression
156 
157  // Do suppressDebug first and suppressError last to get proper order
158  for( vString::const_iterator it = suppressDebug.begin();
159  it != suppressDebug.end(); ++it ) {
161  }
162 
163  for( vString::const_iterator it = suppressInfo.begin();
164  it != suppressInfo.end(); ++it ) {
166  }
167 
168  for( vString::const_iterator it = suppressWarning.begin();
169  it != suppressWarning.end(); ++it ) {
171  }
172 
173  for( vString::const_iterator it = suppressError.begin(); // change log 20
174  it != suppressError.end(); ++it ) {
176  }
177 
178  // set up for tracking whether current module is debug-enabled
179  // (and info-enabled and warning-enabled)
180  if ( debugModules.empty()) {
181  anyDebugEnabled_ = false; // change log 11
182  MessageDrop::debugEnabled = false; // change log 1
183  } else {
184  anyDebugEnabled_ = true; // change log 11
186  // this will be over-ridden when specific modules are entered
187  }
188 
189  // if ( debugModules.empty()) anyDebugEnabled_ = true; // wrong; change log 11
190  for( vString::const_iterator it = debugModules.begin();
191  it != debugModules.end(); ++it ) {
192  if (*it == "*") {
193  everyDebugEnabled_ = true;
194  } else {
195  debugEnabledModules_.insert(*it);
196  }
197  }
198 
199  // change log 5
200  std::string jr_name = edm::MessageDrop::instance()->jobreport_name;
201  if (!jr_name.empty()) {
202  std::string * jr_name_p = new std::string(jr_name);
203  MessageLoggerQ::MLqJOB( jr_name_p ); // change log 9
204  }
205 
206  // change log 7
207  std::string jm = edm::MessageDrop::instance()->jobMode;
208  std::string * jm_p = new std::string(jm);
209  MessageLoggerQ::MLqMOD( jm_p ); // change log 9
210 
211  MessageLoggerQ::MLqCFG( new ParameterSet(iPS) ); // change log 9
212 
215  iRegistry.watchJobFailure(this,&MessageLogger::jobFailure); // change log 14
216 
219  // change log 3
220 
223  // change log 3
224 
225  iRegistry.watchPreModule(this,&MessageLogger::preModule);
227 
228  iRegistry.watchPreSource(this,&MessageLogger::preSource);
230  // change log 14:
235  iRegistry.watchPreOpenFile(this,&MessageLogger::preFile);
239 
240  // change log 13:
241  // change log 15
254 
257  // change log 14:
260  iRegistry.watchPreEndRun(this,&MessageLogger::preEndRun); // change log 15
266 
277 
278 } // ctor
279 
280 //
281 // Shared helper routines for establishing module name and enabling behavior
282 //
283 
284 void
286  const char * whichPhase) // ChangeLog 13, 17
287 {
288  MessageDrop* messageDrop = MessageDrop::instance();
289  nonModule_debugEnabled = messageDrop->debugEnabled;
290  nonModule_infoEnabled = messageDrop->infoEnabled;
292  nonModule_errorEnabled = messageDrop->errorEnabled; // change log 20
293 
294  // std::cerr << "establishModule( " << desc.moduleName() << ")\n";
295  // Change Log 17
296  messageDrop->setModuleWithPhase( desc.moduleName(), desc.moduleLabel(),
297  &desc, whichPhase );
298  // Removed caching per change 17 - caching is now done in MessageDrop.cc
299  // in theContext() method, and only happens if a message is actually issued.
300 
301  if (!anyDebugEnabled_) {
302  messageDrop->debugEnabled = false;
303  } else if (everyDebugEnabled_) {
304  messageDrop->debugEnabled = true;
305  } else {
306  messageDrop->debugEnabled =
307  debugEnabledModules_.count(desc.moduleLabel());
308  }
309 
310  std::map<const std::string,ELseverityLevel>::const_iterator it =
311  suppression_levels_.find(desc.moduleLabel());
312  if ( it != suppression_levels_.end() ) {
313  messageDrop->debugEnabled = messageDrop->debugEnabled
314  && (it->second < ELseverityLevel::ELsev_success );
315  messageDrop->infoEnabled = (it->second < ELseverityLevel::ELsev_info );
316  messageDrop->warningEnabled = (it->second < ELseverityLevel::ELsev_warning );
317  messageDrop->errorEnabled = (it->second < ELseverityLevel::ELsev_error );
318  } else {
319  messageDrop->infoEnabled = true;
320  messageDrop->warningEnabled = true;
321  messageDrop->errorEnabled = true;
322  }
323 } // establishModule
324 
325 void
327  const char* whichPhase) // ChangeLog 16
328 {
329  MessageDrop* messageDrop = MessageDrop::instance();
330  nonModule_debugEnabled = messageDrop->debugEnabled;
331  nonModule_infoEnabled = messageDrop->infoEnabled;
333  nonModule_errorEnabled = messageDrop->errorEnabled; // change log 20
334 
335  // std::cerr << "establishModuleCtor( " << desc.moduleName() << ")\n";
336  // Change Log 17
337  messageDrop->setModuleWithPhase( desc.moduleName(), desc.moduleLabel(),
338  0, whichPhase );
339  // Cannot cache the value to improve performance because addresses are
340  // not yet permanent - see change log 16. So did not provide desc ptr.
341 
342  if (!anyDebugEnabled_) {
343  messageDrop->debugEnabled = false;
344  } else if (everyDebugEnabled_) {
345  messageDrop->debugEnabled = true;
346  } else {
347  messageDrop->debugEnabled =
348  debugEnabledModules_.count(desc.moduleLabel());
349  }
350 
351  std::map<const std::string,ELseverityLevel>::const_iterator it =
352  suppression_levels_.find(desc.moduleLabel());
353  if ( it != suppression_levels_.end() ) {
354  messageDrop->debugEnabled = messageDrop->debugEnabled
355  && (it->second < ELseverityLevel::ELsev_success );
356  messageDrop->infoEnabled = (it->second < ELseverityLevel::ELsev_info );
357  messageDrop->warningEnabled = (it->second < ELseverityLevel::ELsev_warning );
358  messageDrop->errorEnabled = (it->second < ELseverityLevel::ELsev_error );
359  } else {
360  messageDrop->infoEnabled = true;
361  messageDrop->warningEnabled = true;
362  messageDrop->errorEnabled = true;
363  }
364  messageDrop->snapshot(); // Change Log 18
365 } // establishModuleCtor
366 
367 void
369  const char* state)
370 {
371  // std::cerr << "unestablishModule( " << desc.moduleName() << ") "
372  // << "state = " << *state << "\n";
373 
374  MessageDrop* messageDrop = MessageDrop::instance();
375  messageDrop->setSinglet( state ); // Change Log 17
376  messageDrop->debugEnabled = nonModule_debugEnabled;
377  messageDrop->infoEnabled = nonModule_infoEnabled;
379  messageDrop->errorEnabled = nonModule_errorEnabled; // change log 20
380 }
381 
382 void
384 {
385  MessageDrop* messageDrop = MessageDrop::instance();
386  messageDrop->setSinglet( state ); // Change Log 17
387  if (!anyDebugEnabled_) {
388  messageDrop->debugEnabled = false;
389  } else if (everyDebugEnabled_) {
390  messageDrop->debugEnabled = true;
391  } else {
392  messageDrop->debugEnabled =
393  debugEnabledModules_.count(state); // change log 8
394  }
395  std::map<const std::string,ELseverityLevel>::const_iterator it =
396  suppression_levels_.find(state); // change log 8
397  if ( it != suppression_levels_.end() ) {
398  messageDrop->debugEnabled = messageDrop->debugEnabled
399  && (it->second < ELseverityLevel::ELsev_success );
400  messageDrop->infoEnabled = (it->second < ELseverityLevel::ELsev_info );
401  messageDrop->warningEnabled = (it->second < ELseverityLevel::ELsev_warning );
402  messageDrop->errorEnabled = (it->second < ELseverityLevel::ELsev_error );
403  } else {
404  messageDrop->infoEnabled = true;
405  messageDrop->warningEnabled = true;
406  messageDrop->errorEnabled = true;
407  }
408 }
409 
410 void
412 {
413  MessageDrop::instance()->setSinglet( state ); // Change Log 17
414 }
415 
416 //
417 // callbacks that need to establish the module, and their counterparts
418 //
419 
420 void
422 {
423  if (!messageServicePSetHasBeenValidated_) { // change log 12
425  throw ( edm::Exception
428  ) );
429  }
431  }
432  establishModuleCtor (desc,"@ctor"); // ChangeLog 16
433 }
435 { unEstablishModule (iDescription, "AfterModConstruction"); }
436 
437 void
439 {
440  establishModule (desc,"@beginJob"); // ChangeLog 13
441 }
443 { unEstablishModule (iDescription, "AfterModBeginJob"); }
444 
445 void
447 {
448  if (!messageServicePSetHasBeenValidated_) { // change log 12
450  throw ( edm::Exception
453  ) );
454  }
456  }
457  establishModuleCtor (desc,"@sourceConstruction"); // ChangeLog 16
458 }
460 { unEstablishModule (iDescription, "AfterSourceConstruction"); }
461 
462 void
464 {
465  establishModule (desc,"@beginRun"); // ChangeLog 13
466 }
468 { unEstablishModule (iDescription, "AfterModBeginRun"); }
469 
470 void
472 {
473  establishModule (desc,"@beginLumi"); // ChangeLog 13
474 }
476 { unEstablishModule (iDescription, "AfterModBeginLumi"); }
477 
478 void
480 {
481  establishModule (desc,""); // ChangeLog 13
482 }
484 { unEstablishModule (iDescription, "PostModule"); }
485 
486 void
488 {
489  establishModule (desc,"@endLumi"); // ChangeLog 13
490 }
492 { unEstablishModule (iDescription, "AfterModEndLumi"); }
493 
494 void
496 {
497  establishModule (desc,"@endRun"); // ChangeLog 13
498 }
500 { unEstablishModule (iDescription, "AfterModEndRun"); }
501 
502 void
504 {
505  establishModule (desc,"@endJob"); // ChangeLog 13
506 }
508 { unEstablishModule (iDescription, "AfterModEndJob"); }
509 
510 //
511 // callbacks that don't know about the module
512 //
513 
514 void
516 {
517  MessageDrop::instance()->runEvent = "BeforeEvents";
518  MessageDrop::instance()->setSinglet("AfterBeginJob"); // Change Log 17
519 }
520 
521 void
523 {
524  establish("source");
525 }
527 { unEstablish("AfterSource"); }
528 
530 { establish("file_open"); }
532 { establish("file_close"); }
534 { unEstablish("AfterFile"); }
535 
536 
537 void
539  , const edm::Timestamp& /*unused*/ )
540 {
541  std::ostringstream ost;
542  curr_event_ = iID;
543  ost << "Run: " << curr_event_.run()
544  << " Event: " << curr_event_.event(); // change log 2
545  edm::MessageDrop::instance()->runEvent = ost.str();
546  edm::MessageDrop::instance()->setSinglet("PreEventProcessing");// changelog 17
547  // Note - module name had not been set here Similarly in other places where
548  // RunEvent carries the new information; we add setSinglet for module name.
549 }
550 
551 void
553 {
554  edm::MessageDrop::instance()->runEvent = "PostProcessEvent";
555 }
556 
557 void
559  , const edm::Timestamp& /*unused*/) // change log 14
560 {
561  std::ostringstream ost;
562  ost << "Run: " << iID.run();
563  edm::MessageDrop::instance()->runEvent = ost.str();
564  edm::MessageDrop::instance()->setSinglet("PreBeginRun"); // changelog 17
565 }
567 {
568  edm::MessageDrop::instance()->runEvent = "PostBeginRun";
569  edm::MessageDrop::instance()->setSinglet("PostBeginRun"); // changelog 17
570  // Note - module name had not been set here
571 }
572 
573 void
574 MessageLogger::prePathBeginRun( const std::string & pathname ) // change log 14
575 {
576  edm::MessageDrop::instance()->setPath( "RPath: ", pathname); // change log 17
577 }
578 
579 void MessageLogger::postPathBeginRun(std::string const&,HLTPathStatus const&)
580 {
581  edm::MessageDrop::instance()->setSinglet("PostPathBeginRun"); // changelog 17
582 }
583 
584 void
585 MessageLogger::prePathEndRun( const std::string & pathname ) // change log 14
586 {
587  edm::MessageDrop::instance()->setPath( "RPathEnd: ", pathname);
588  // change log 17
589 }
590 
591 void MessageLogger::postPathEndRun(std::string const&,HLTPathStatus const&)
592 {
593  edm::MessageDrop::instance()->setSinglet("PostPathEndRun"); // changelog 17
594 }
595 
596 void
597 MessageLogger::prePathBeginLumi( const std::string & pathname ) // change log 14
598 {
599  edm::MessageDrop::instance()->setPath( "LPath: ", pathname); // change log 17
600 }
601 
602 void MessageLogger::postPathBeginLumi(std::string const&,HLTPathStatus const&)
603 {
604  edm::MessageDrop::instance()->setSinglet("PostPathBeginLumi"); // changelog 17
605 }
606 
607 void
608 MessageLogger::prePathEndLumi( const std::string & pathname ) // change log 14
609 {
610  edm::MessageDrop::instance()->setPath( "LPathEnd: ", pathname);
611  // change log 17
612 }
613 
614 void MessageLogger::postPathEndLumi(std::string const&,HLTPathStatus const&)
615 {
616  edm::MessageDrop::instance()->setSinglet("PostPathEndLumi"); // changelog 17
617 }
618 
619 void
620 MessageLogger::preProcessPath( const std::string & pathname ) // change log 14
621 {
622  edm::MessageDrop::instance()->setPath( "PreProcPath ", pathname);
623  // change log 17
624 }
625 
626 void MessageLogger::postProcessPath(std::string const&,HLTPathStatus const&)
627 {
628  edm::MessageDrop::instance()->setSinglet("PostProcessPath"); // changelog 17
629 }
630 
631 void
633  , const edm::Timestamp& /*unused*/)
634 {
635  std::ostringstream ost;
636  ost << "End Run: " << iID.run();
637  edm::MessageDrop::instance()->runEvent = ost.str();
638  edm::MessageDrop::instance()->setSinglet("PreEndRun"); // changelog 17
639 }
640 
642 {
643  edm::MessageDrop::instance()->runEvent = "PostEndRun";
644  edm::MessageDrop::instance()->setSinglet("PostEndRun"); // changelog 17
645 }
646 
647 void
649  , const edm::Timestamp& /*unused*/)
650 {
651  std::ostringstream ost;
652  ost << "Run: " << iID.run() << " Lumi: " << iID.luminosityBlock();
653  edm::MessageDrop::instance()->runEvent = ost.str();
654  edm::MessageDrop::instance()->setSinglet("PreBeginLumi"); // changelog 17
655 }
656 
658 {
659  edm::MessageDrop::instance()->runEvent = "PostBeginLumi";
660  edm::MessageDrop::instance()->setSinglet("PostBeginLumi"); // changelog 17
661 }
662 
663 void
665  , const edm::Timestamp& /*unused*/)
666 {
667  std::ostringstream ost;
668  ost << "Run: " << iID.run() << " Lumi: " << iID.luminosityBlock();
669  edm::MessageDrop::instance()->runEvent = ost.str();
670  edm::MessageDrop::instance()->setSinglet("PreEndLumi"); // changelog 17
671 }
673 {
674  edm::MessageDrop::instance()->runEvent = "PostEndLumi";
675  edm::MessageDrop::instance()->setSinglet("PostEndLumi"); // changelog 17
676 }
677 
678 void
680 {
681  SummarizeInJobReport(); // Put summary info into Job Rep // change log 10
682  MessageLoggerQ::MLqSUM ( ); // trigger summary info. // change log 9
683 }
684 
685 void
687 {
688  MessageDrop* messageDrop = MessageDrop::instance();
689  messageDrop->moduleName = "jobFailure";
690  SummarizeInJobReport(); // Put summary info into Job Rep // change log 10
691  MessageLoggerQ::MLqSUM ( ); // trigger summary info. // change log 9
692 }
693 
694 
695 //
696 // Other methods
697 //
698 
699 void
701  if ( fjrSummaryRequested_ ) {
702  std::map<std::string, double> * smp = new std::map<std::string, double> ();
703  MessageLoggerQ::MLqJRS ( smp );
704  Service<JobReport> reportSvc;
705  reportSvc->reportMessageInfo(*smp);
706  delete smp;
707  }
708 }
709 
710 } // end of namespace service
711 } // end of namespace edm
RunNumber_t run() const
Definition: EventID.h:42
void watchPostBeginRun(PostBeginRun::slot_type const &iSlot)
void watchPrePathEndLumi(PrePathEndLumi::slot_type const &iSlot)
void watchPostModuleConstruction(PostModuleConstruction::slot_type const &iSlot)
void preModuleBeginLumi(ModuleDescription const &)
EventNumber_t event() const
Definition: EventID.h:44
T getUntrackedParameter(std::string const &, T const &) const
void preModuleEndJob(ModuleDescription const &)
void watchPostModuleBeginLumi(PostModuleBeginLumi::slot_type const &iSlot)
void postModuleConstruction(ModuleDescription const &)
void preEndLumi(const edm::LuminosityBlockID &, const edm::Timestamp &)
void postBeginRun(const edm::Run &, EventSetup const &)
void watchPostEndJob(PostEndJob::slot_type const &iSlot)
RunNumber_t run() const
Definition: RunID.h:44
std::string jobreport_name
Definition: MessageDrop.h:103
void postPathEndLumi(const std::string &pathname, HLTPathStatus const &)
void watchPrePathEndRun(PrePathEndRun::slot_type const &iSlot)
void preBeginRun(const edm::RunID &, const edm::Timestamp &)
tuple suppressDebug
Definition: MergeJob_cfg.py:30
void watchPreModuleConstruction(PreModuleConstruction::slot_type const &iSlot)
static bool warningEnabled
Definition: MessageDrop.h:107
void setModuleWithPhase(std::string const &name, std::string const &label, const void *moduleID, const char *phase)
Definition: MessageDrop.cc:243
void preModuleBeginJob(ModuleDescription const &)
void watchPostModule(PostModule::slot_type const &iSlot)
void watchPreProcessEvent(PreProcessEvent::slot_type const &iSlot)
void watchPreSourceConstruction(PreSourceConstruction::slot_type const &iSlot)
void watchPreEndLumi(PreEndLumi::slot_type const &iSlot)
void watchPostSourceConstruction(PostSourceConstruction::slot_type const &iSlot)
static MessageDrop * instance()
Definition: MessageDrop.cc:65
void watchPostPathEndRun(PostPathEndRun::slot_type const &iSlot)
std::string const & moduleName() const
static bool debugEnabled
Definition: MessageDrop.h:105
void postEndRun(const edm::Run &, EventSetup const &)
void prePathEndLumi(const std::string &pathname)
void preSourceConstruction(ModuleDescription const &)
void watchPostEndLumi(PostEndLumi::slot_type const &iSlot)
MessageLogger(ParameterSet const &, ActivityRegistry &)
void preEndRun(const edm::RunID &, const edm::Timestamp &)
void postModuleEndLumi(ModuleDescription const &)
void watchPreModuleEndLumi(PreModuleEndLumi::slot_type const &iSlot)
void postPathEndRun(const std::string &pathname, HLTPathStatus const &)
void establishModuleCtor(const ModuleDescription &desc, const char *whichPhase)
void watchPostPathEndLumi(PostPathEndLumi::slot_type const &iSlot)
std::string const & moduleLabel() const
void setSinglet(const char *sing)
Definition: MessageDrop.cc:256
void postPathBeginLumi(const std::string &pathname, HLTPathStatus const &)
void watchPreEndRun(PreEndRun::slot_type const &iSlot)
void watchPreModule(PreModule::slot_type const &iSlot)
void postEventProcessing(Event const &, EventSetup const &)
void postModuleEndRun(ModuleDescription const &)
void watchJobFailure(JobFailure::slot_type const &iSlot)
convenience function for attaching to signal
void watchPreOpenFile(PreOpenFile::slot_type const &iSlot)
void watchPostProcessEvent(PostProcessEvent::slot_type const &iSlot)
void watchPostCloseFile(PostCloseFile::slot_type const &iSlot)
void watchPreModuleEndRun(PreModuleEndRun::slot_type const &iSlot)
void watchPrePathBeginRun(PrePathBeginRun::slot_type const &iSlot)
void postEndLumi(const edm::LuminosityBlock &, EventSetup const &)
std::string moduleName
Definition: MessageDrop.h:93
static bool infoEnabled
Definition: MessageDrop.h:106
void watchPostSourceRun(PostSourceRun::slot_type const &iSlot)
void preModuleEndRun(ModuleDescription const &)
static void MLqCFG(ParameterSet *p)
std::string jobMode
Definition: MessageDrop.h:104
void watchPreSourceLumi(PreSourceLumi::slot_type const &iSlot)
void watchPostModuleEndRun(PostModuleEndRun::slot_type const &iSlot)
RunNumber_t run() const
void watchPreSource(PreSource::slot_type const &iSlot)
void watchPreModuleEndJob(PreModuleEndJob::slot_type const &iSlot)
void postBeginLumi(const edm::LuminosityBlock &, EventSetup const &)
void prePathBeginLumi(const std::string &pathname)
void watchPreSourceRun(PreSourceRun::slot_type const &iSlot)
void preModuleConstruction(ModuleDescription const &)
void watchPostBeginLumi(PostBeginLumi::slot_type const &iSlot)
void watchPreModuleBeginJob(PreModuleBeginJob::slot_type const &iSlot)
void watchPrePathBeginLumi(PrePathBeginLumi::slot_type const &iSlot)
void postModuleBeginRun(ModuleDescription const &)
void unEstablishModule(const ModuleDescription &desc, const char *whichPhase)
void watchPostModuleBeginRun(PostModuleBeginRun::slot_type const &iSlot)
void watchPostPathBeginRun(PostPathBeginRun::slot_type const &iSlot)
void preModuleBeginRun(ModuleDescription const &)
void postModuleBeginLumi(ModuleDescription const &)
static bool errorEnabled
Definition: MessageDrop.h:108
void preEventProcessing(edm::EventID const &, edm::Timestamp const &)
std::set< std::string > debugEnabledModules_
void watchPostSourceLumi(PostSourceLumi::slot_type const &iSlot)
void watchPreCloseFile(PreCloseFile::slot_type const &iSlot)
void establish(const char *whichPhase)
void postSourceConstruction(ModuleDescription const &)
static void MLqJRS(std::map< std::string, double > *sum_p)
static void MLqMOD(std::string *jm)
LuminosityBlockNumber_t luminosityBlock() const
void watchPostOpenFile(PostOpenFile::slot_type const &iSlot)
void preModuleEndLumi(ModuleDescription const &)
void postModuleEndJob(ModuleDescription const &)
char state
Definition: procUtils.cc:75
void postProcessPath(const std::string &pathname, HLTPathStatus const &)
void watchPostSource(PostSource::slot_type const &iSlot)
void unEstablish(const char *whichPhase)
void prePathBeginRun(const std::string &pathname)
void postModuleBeginJob(ModuleDescription const &)
void establishModule(const ModuleDescription &desc, const char *whichPhase)
static void SummarizeInJobReport()
void watchPostModuleBeginJob(PostModuleBeginJob::slot_type const &iSlot)
void postPathBeginRun(const std::string &pathname, HLTPathStatus const &)
static void MLqJOB(std::string *j)
void watchPreBeginLumi(PreBeginLumi::slot_type const &iSlot)
void preProcessPath(const std::string &pathname)
static void MLqSUM()
void setPath(const char *type, std::string const &pathname)
Definition: MessageDrop.cc:251
void preBeginLumi(const edm::LuminosityBlockID &, const edm::Timestamp &)
void preModule(ModuleDescription const &)
void watchPostEndRun(PostEndRun::slot_type const &iSlot)
tuple suppressWarning
Definition: MergeJob_cfg.py:28
std::string runEvent
Definition: MessageDrop.h:102
void watchPreModuleBeginLumi(PreModuleBeginLumi::slot_type const &iSlot)
std::string messageServicePSetValidatationResults_
void watchPreProcessPath(PreProcessPath::slot_type const &iSlot)
void watchPostModuleEndJob(PostModuleEndJob::slot_type const &iSlot)
void postModule(ModuleDescription const &)
void watchPreModuleBeginRun(PreModuleBeginRun::slot_type const &iSlot)
std::map< std::string, ELseverityLevel > suppression_levels_
void reportMessageInfo(std::map< std::string, double > const &messageData)
Definition: JobReport.cc:764
void watchPostModuleEndLumi(PostModuleEndLumi::slot_type const &iSlot)
void watchPostPathBeginLumi(PostPathBeginLumi::slot_type const &iSlot)
void watchPostProcessPath(PostProcessPath::slot_type const &iSlot)
Definition: Run.h:33
void prePathEndRun(const std::string &pathname)
void watchPreBeginRun(PreBeginRun::slot_type const &iSlot)
void watchPostBeginJob(PostBeginJob::slot_type const &iSlot)
convenience function for attaching to signal