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
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
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  moduleStack_.emplace_back(&desc);
483 }
484 
486 {
487  // The moduleStack_ should never be empty, but lets check to be safe ...
488  if(moduleStack_.empty()) {
489  unEstablishModule (iDescription, "PostModule");
490  } else {
491  moduleStack_.pop_back();
492  if(moduleStack_.empty()) {
493  unEstablishModule (iDescription, "PostModule");
494  } else {
495  establishModule(*moduleStack_.back(), "");
496  }
497  }
498 }
499 
500 void
502 {
503  establishModule (desc,"@endLumi"); // ChangeLog 13
504 }
506 { unEstablishModule (iDescription, "AfterModEndLumi"); }
507 
508 void
510 {
511  establishModule (desc,"@endRun"); // ChangeLog 13
512 }
514 { unEstablishModule (iDescription, "AfterModEndRun"); }
515 
516 void
518 {
519  establishModule (desc,"@endJob"); // ChangeLog 13
520 }
522 { unEstablishModule (iDescription, "AfterModEndJob"); }
523 
524 //
525 // callbacks that don't know about the module
526 //
527 
528 void
530 {
531  MessageDrop::instance()->runEvent = "BeforeEvents";
532  MessageDrop::instance()->setSinglet("AfterBeginJob"); // Change Log 17
533 }
534 
535 void
537 {
538  establish("source");
539 }
541 { unEstablish("AfterSource"); }
542 
544 { establish("file_open"); }
546 { establish("file_close"); }
548 { unEstablish("AfterFile"); }
549 
550 
551 void
553  , const edm::Timestamp& /*unused*/ )
554 {
555  std::ostringstream ost;
556  curr_event_ = iID;
557  ost << "Run: " << curr_event_.run()
558  << " Event: " << curr_event_.event(); // change log 2
559  edm::MessageDrop::instance()->runEvent = ost.str();
560  edm::MessageDrop::instance()->setSinglet("PreEventProcessing");// changelog 17
561  // Note - module name had not been set here Similarly in other places where
562  // RunEvent carries the new information; we add setSinglet for module name.
563 }
564 
565 void
567 {
568  edm::MessageDrop::instance()->runEvent = "PostProcessEvent";
569 }
570 
571 void
573  , const edm::Timestamp& /*unused*/) // change log 14
574 {
575  std::ostringstream ost;
576  ost << "Run: " << iID.run();
577  edm::MessageDrop::instance()->runEvent = ost.str();
578  edm::MessageDrop::instance()->setSinglet("PreBeginRun"); // changelog 17
579 }
581 {
582  edm::MessageDrop::instance()->runEvent = "PostBeginRun";
583  edm::MessageDrop::instance()->setSinglet("PostBeginRun"); // changelog 17
584  // Note - module name had not been set here
585 }
586 
587 void
589 {
590  edm::MessageDrop::instance()->setPath( "RPath: ", pathname); // change log 17
591 }
592 
594 {
595  edm::MessageDrop::instance()->setSinglet("PostPathBeginRun"); // changelog 17
596 }
597 
598 void
600 {
601  edm::MessageDrop::instance()->setPath( "RPathEnd: ", pathname);
602  // change log 17
603 }
604 
606 {
607  edm::MessageDrop::instance()->setSinglet("PostPathEndRun"); // changelog 17
608 }
609 
610 void
612 {
613  edm::MessageDrop::instance()->setPath( "LPath: ", pathname); // change log 17
614 }
615 
617 {
618  edm::MessageDrop::instance()->setSinglet("PostPathBeginLumi"); // changelog 17
619 }
620 
621 void
623 {
624  edm::MessageDrop::instance()->setPath( "LPathEnd: ", pathname);
625  // change log 17
626 }
627 
629 {
630  edm::MessageDrop::instance()->setSinglet("PostPathEndLumi"); // changelog 17
631 }
632 
633 void
635 {
636  edm::MessageDrop::instance()->setPath( "PreProcPath ", pathname);
637  // change log 17
638 }
639 
641 {
642  edm::MessageDrop::instance()->setSinglet("PostProcessPath"); // changelog 17
643 }
644 
645 void
647  , const edm::Timestamp& /*unused*/)
648 {
649  std::ostringstream ost;
650  ost << "End Run: " << iID.run();
651  edm::MessageDrop::instance()->runEvent = ost.str();
652  edm::MessageDrop::instance()->setSinglet("PreEndRun"); // changelog 17
653 }
654 
656 {
657  edm::MessageDrop::instance()->runEvent = "PostEndRun";
658  edm::MessageDrop::instance()->setSinglet("PostEndRun"); // changelog 17
659 }
660 
661 void
663  , const edm::Timestamp& /*unused*/)
664 {
665  std::ostringstream ost;
666  ost << "Run: " << iID.run() << " Lumi: " << iID.luminosityBlock();
667  edm::MessageDrop::instance()->runEvent = ost.str();
668  edm::MessageDrop::instance()->setSinglet("PreBeginLumi"); // changelog 17
669 }
670 
672 {
673  edm::MessageDrop::instance()->runEvent = "PostBeginLumi";
674  edm::MessageDrop::instance()->setSinglet("PostBeginLumi"); // changelog 17
675 }
676 
677 void
679  , const edm::Timestamp& /*unused*/)
680 {
681  std::ostringstream ost;
682  ost << "Run: " << iID.run() << " Lumi: " << iID.luminosityBlock();
683  edm::MessageDrop::instance()->runEvent = ost.str();
684  edm::MessageDrop::instance()->setSinglet("PreEndLumi"); // changelog 17
685 }
687 {
688  edm::MessageDrop::instance()->runEvent = "PostEndLumi";
689  edm::MessageDrop::instance()->setSinglet("PostEndLumi"); // changelog 17
690 }
691 
692 void
694 {
695  SummarizeInJobReport(); // Put summary info into Job Rep // change log 10
696  MessageLoggerQ::MLqSUM ( ); // trigger summary info. // change log 9
697 }
698 
699 void
701 {
702  MessageDrop* messageDrop = MessageDrop::instance();
703  messageDrop->moduleName = "jobFailure";
704  SummarizeInJobReport(); // Put summary info into Job Rep // change log 10
705  MessageLoggerQ::MLqSUM ( ); // trigger summary info. // change log 9
706 }
707 
708 
709 //
710 // Other methods
711 //
712 
713 void
715  if ( fjrSummaryRequested_ ) {
716  std::map<std::string, double> * smp = new std::map<std::string, double> ();
717  MessageLoggerQ::MLqJRS ( smp );
718  Service<JobReport> reportSvc;
719  reportSvc->reportMessageInfo(*smp);
720  delete smp;
721  }
722 }
723 
724 } // end of namespace service
725 } // 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 &)
std::vector< ModuleDescription const * > moduleStack_
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 preFileClose(std::string const &, bool)
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:36
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