366 {
367
369
370 list<string>::const_iterator itr;
371
374 std::println (ofs, " {}", *itr);
375 }
376
377 std::println (ofs,
"Files written: {}",
m_outputFiles.size());
379 std::println (ofs, " {}", *itr);
380 }
381
384 std::println (ofs, " {}", *itr);
385 }
386
390
391 std::println (ofs,
"Runs: {}",
m_runs);
392
393
394 std::println (ofs, "Message Count: ");
395 std::println (ofs,
" FATAL: {}",
msgSvc()->messageCount( MSG::FATAL ));
396 std::println (ofs,
" ERROR: {}",
msgSvc()->messageCount( MSG::ERROR ));
397 std::println (ofs,
" WARNING: {}",
msgSvc()->messageCount( MSG::WARNING ));
398 std::println (ofs,
" INFO: {}",
msgSvc()->messageCount( MSG::INFO ));
399
401
402 IntegerProperty
thresh(
"loggingLevel",MSG::VERBOSE);
403 IProperty *
ip =
dynamic_cast<IProperty*
>(
p_logMsg );
404 if (ip != nullptr) {
405 if (
ip->getProperty(&thresh).isFailure()) {
406 ATH_MSG_ERROR(
"could not get loggingLevel property of LoggedMessageSvc");
407 }
408 } else {
409 ATH_MSG_ERROR(
"could not dcast LoggedMessageSvc to IProperty");
410 }
411
412
413
414 std::println (ofs, "Message Log: ");
415 vector<pair<string,string> > msgs;
416 vector<pair<string,string> >::const_iterator mitr;
417 for (
unsigned int l=
thresh.value(); l < MSG::ALWAYS; l++) {
419 msgs =
p_logMsg->getMessages( MSG::Level(l) );
420 std::println (ofs, " {}", msgs.size());
421 for (mitr=msgs.begin(); mitr != msgs.end(); ++mitr) {
422 std::println (ofs, " {} : {}", mitr->first, mitr->second);
423 }
424 }
425
426 std::println (ofs, "Keyword tracked messages: ");
427 for (
const auto&
msg :
p_logMsg->getKeyMessages()) {
428 std::println (ofs, " {} {} {}",
430 }
431
432 }
433
435 std::println (ofs, "Extra Summary Info:");
436 vector<pair<string,string> >::const_iterator itr (
m_extraInfo.begin() );
438 std::println (ofs, " {} : {}", itr->first, itr->second);
439 }
440 }
441
443 std::println (ofs, "Extra Incident Counts:");
444 map<string, map<string,int> >::const_iterator itr(
m_extraIncidents.begin());
446 std::print (ofs, " {}", itr->first);
447 if (itr->second.begin() == itr->second.end()) {
448 std::println (ofs, " : 0");
449 } else {
450 for (map<string,int>::const_iterator it=itr->second.begin();
451 it != itr->second.end(); ++it) {
452 std::print (ofs,
" :: {}: {}",
it->first,
it->second);
453 }
454 std::println (ofs);
455 }
456 }
457 }
458
459 if (s_badalloc) {
460 std::println (ofs, "std::bad_alloc caught: out of memory condition detected");
461 }
462
463 std::println (ofs,
"Exit Status: {}",
m_status);
464
465
466}
#define ATH_MSG_ERROR(x,...)
static constexpr std::string levelNames[MSG::NUM_LEVELS]
std::list< std::string > m_outputFilesError
unsigned int m_eventsWritten
std::list< std::string > m_inputFilesRead
std::list< std::string > m_outputFiles
ILoggedMessageSvc * p_logMsg
unsigned int m_eventsRead
unsigned int m_eventsSkipped