2 #include "GaudiKernel/MsgStream.h"
3 #include "GaudiKernel/IMessageSvc.h"
4 #include "GaudiKernel/GaudiException.h"
9 :
Auditor(name, pSvcLocator), m_error(0), m_fatal(0) {
11 declareProperty(
"Abort", m_abort =
false,
12 "Abort job upon illegal Algorithm return code");
13 declareProperty(
"Throw", m_throw =
false,
14 "Throw GaudiException upon illegal Algorithm return code");
32 log <<
MSG::INFO <<
"Both \"Throw\" and \"Abort\" options have been set."
33 <<
" Abort takes precedence." <<
endmsg;
45 std::ostringstream os;
46 os <<
"Illegal Return Code: Algorithm " << alg->
name()
47 <<
" reported an ERROR, but returned a StatusCode \"" << sc <<
"\"";
48 os << std::endl <<
"Error policy described in "
49 <<
"https://twiki.cern.ch/twiki/bin/view/AtlasComputing/ReportingErrors";
63 std::ostringstream os;
64 os <<
"Illegal Return Code: Algorithm " << alg->
name()
65 <<
" reported a FATAL, but returned a StatusCode \"" << sc <<
"\"";
66 os << std::endl <<
"Error policy described in "
67 <<
"https://twiki.cern.ch/twiki/bin/view/AtlasComputing/ReportingErrors";
90 std::map<std::string,int>::const_iterator itr;
94 <<
" instances where an Algorithm::execute() produced an ERROR "
95 <<
"but returned a SUCCESS:" << std::endl;
98 log << itr->first <<
": " << itr->second << std::endl;
107 <<
" instances where an Algorithm::execute() produced a FATAL "
108 <<
"but returned a SUCCESS:" << std::endl;
111 log << itr->first <<
": " << itr->second << std::endl;
124 std::map<std::string, int>::iterator itr;