diff --git a/Control/AthenaServices/src/AthenaEventLoopMgr.cxx b/Control/AthenaServices/src/AthenaEventLoopMgr.cxx
index a7da9750076c3fb92315e6dfcfc3335186b190da..fc9d3a73d762d8e8308d4b9a6d26fab5442d853c 100644
--- a/Control/AthenaServices/src/AthenaEventLoopMgr.cxx
+++ b/Control/AthenaServices/src/AthenaEventLoopMgr.cxx
@@ -60,7 +60,6 @@ AthenaEventLoopMgr::AthenaEventLoopMgr(const std::string& nam,
     m_activeStoreSvc ( "ActiveStoreSvc",           nam ),
     m_pITK(nullptr), 
     m_currentRun(0), m_firstRun(true), m_tools(this), m_nevt(0), m_writeHists(false),
-    m_msg( msgSvc(), nam ),
     m_nev(0), m_proc(0), m_useTools(false), 
     m_chronoStatSvc( "ChronoStatSvc", nam )
 
@@ -113,23 +112,16 @@ StatusCode AthenaEventLoopMgr::initialize()
 {
 
   // configure our MsgStream
-  m_msg.setLevel( m_outputLevel.value() );
-
-  m_msg << MSG::INFO << "Initializing " << name()
-	<< " - package version " << PACKAGE_VERSION << endmsg ;
+  info() << "Initializing " << name()
+         << " - package version " << PACKAGE_VERSION << endmsg ;
  
 
   StatusCode sc = MinimalEventLoopMgr::initialize();
   if ( !sc.isSuccess() ) 
   {
-    m_msg << MSG::ERROR
-	<< "Failed to initialize base class MinimalEventLoopMgr"
-	<< endmsg;
+    error() << "Failed to initialize base class MinimalEventLoopMgr"
+            << endmsg;
     return sc;
-  } else {
-    // re-configure our MsgStream: 
-    // yes... do it twice b/c this is how we do it...
-    m_msg.setLevel( m_outputLevel.value() );
   }
 
 //-------------------------------------------------------------------------
@@ -139,9 +131,8 @@ StatusCode AthenaEventLoopMgr::initialize()
   sc = m_eventStore.retrieve();
   if( !sc.isSuccess() )  
   {
-    m_msg << MSG::FATAL 
-	  << "Error retrieving pointer to StoreGateSvc"
-	  << endmsg;
+    fatal() << "Error retrieving pointer to StoreGateSvc"
+            << endmsg;
     return sc;
   }
 
@@ -152,7 +143,7 @@ StatusCode AthenaEventLoopMgr::initialize()
   sc = m_incidentSvc.retrieve();
   if( !sc.isSuccess() )  
   {
-    m_msg << MSG::FATAL << "Error retrieving IncidentSvc." << endmsg;
+    fatal() << "Error retrieving IncidentSvc." << endmsg;
     return sc;
   }
 
@@ -162,9 +153,8 @@ StatusCode AthenaEventLoopMgr::initialize()
   SmartIF<IProperty> prpMgr(serviceLocator());
   if ( !prpMgr.isValid() ) 
   {
-    m_msg << MSG::FATAL 
-	  << "IProperty interface not found in ApplicationMgr." 
-	  << endmsg;
+    fatal() << "IProperty interface not found in ApplicationMgr." 
+            << endmsg;
     return StatusCode::FAILURE;
   }
 
@@ -175,9 +165,8 @@ StatusCode AthenaEventLoopMgr::initialize()
   sc = m_histoDataMgrSvc.retrieve();
   if( !sc.isSuccess() )  
   {
-    m_msg << MSG::FATAL 
-	  << "Error retrieving HistogramDataSvc" 
-	  << endmsg;
+    fatal() << "Error retrieving HistogramDataSvc" 
+            << endmsg;
     return sc;
   }
     
@@ -193,9 +182,8 @@ StatusCode AthenaEventLoopMgr::initialize()
 				       this->name() );
 
     if( !sc.isSuccess() )  {
-      m_msg << MSG::WARNING 
-	    << "Histograms cannot not be saved - though required." 
-	    << endmsg;
+      warning() << "Histograms cannot not be saved - though required." 
+                << endmsg;
     } else {
 
       IService *is = nullptr;
@@ -206,13 +194,12 @@ StatusCode AthenaEventLoopMgr::initialize()
       }
 
       if (sc.isFailure()) {
-	m_msg << MSG::ERROR 
-	      << "could not locate actual Histogram persistency service"
-	      << endmsg;
+	error() << "could not locate actual Histogram persistency service"
+                << endmsg;
       } else {
 	Service *s = dynamic_cast<Service*>(is);
 	if (s == nullptr) {
-	  m_msg << MSG::ERROR << "Could not dcast HistPersSvc to a Service"
+	  error() << "Could not dcast HistPersSvc to a Service"
 		<< endmsg;
 	} else {
 	  const Property &prop = s->getProperty("OutputFile");
@@ -223,10 +210,9 @@ StatusCode AthenaEventLoopMgr::initialize()
 	    val = sprop.value();
 
 	  } catch (...) {
-	    m_msg << MSG::VERBOSE
-		  << "could not dcast OutputFile property to a StringProperty."
-		  << " Need to fix Gaudi."
-		  << endmsg;
+            verbose() << "could not dcast OutputFile property to a StringProperty."
+                      << " Need to fix Gaudi."
+                      << endmsg;
 
 	    val = prop.toString();
 
@@ -246,9 +232,8 @@ StatusCode AthenaEventLoopMgr::initialize()
     }
     
 
-  }  else { if (m_msg.level() <= MSG::DEBUG) { m_msg << MSG::DEBUG 
-						     << "Histograms saving not required." 
-						     << endmsg; } }
+  }  else { if (msgLevel(MSG::DEBUG)) { debug() << "Histograms saving not required." 
+                                                << endmsg; } }
 //-------------------------------------------------------------------------
 // Setup EventSelector service
 //-------------------------------------------------------------------------
@@ -256,7 +241,7 @@ StatusCode AthenaEventLoopMgr::initialize()
   // the evt sel is usually specified as a property of ApplicationMgr
   if (selName.empty()) 
     sc = setProperty(prpMgr->getProperty("EvtSel"));
-  if (sc.isFailure()) m_msg << MSG::WARNING << "Unable to set EvtSel property" << endmsg;
+  if (sc.isFailure()) warning() << "Unable to set EvtSel property" << endmsg;
 
   // We do not expect a Event Selector necessarily being declared
   if( !selName.empty() && selName != "NONE") {
@@ -268,21 +253,20 @@ StatusCode AthenaEventLoopMgr::initialize()
       
       // reset iterator
       if (m_evtSelector->createContext(m_evtContext).isFailure()) {
-	m_msg  << MSG::FATAL << "Can not create the event selector Context." 
-	       << endmsg;
+	fatal() << "Can not create the event selector Context." 
+                << endmsg;
 	return StatusCode::FAILURE;
       }
-      if (m_msg.level() <= MSG::INFO) {
+      if (msgLevel(MSG::INFO)) {
 	INamedInterface* named (dynamic_cast< INamedInterface* >(theEvtSel));
 	if (nullptr != named) {
-	  m_msg << MSG::INFO 
-		<< "Setup EventSelector service " << named->name( ) 
-		<< endmsg;
+	  info() << "Setup EventSelector service " << named->name( ) 
+                 << endmsg;
 	}
       }
     } else if (sc.isFailure()) {
-      m_msg  << MSG::FATAL << "No valid event selector called " << selName 
-	     << endmsg;
+      fatal() << "No valid event selector called " << selName 
+              << endmsg;
       return StatusCode::FAILURE;
     }
   }  
@@ -308,7 +292,7 @@ StatusCode AthenaEventLoopMgr::initialize()
   sc = m_activeStoreSvc.retrieve();
   if( !sc.isSuccess() )  
   {
-    m_msg << MSG::FATAL << "Error retrieving ActiveStoreSvc." << endmsg;
+    fatal() << "Error retrieving ActiveStoreSvc." << endmsg;
     return sc;
   }
 
@@ -334,11 +318,10 @@ AthenaEventLoopMgr::setupTimeKeeper(Property&) {
   // We do not expect a TimeKeeper necessarily being declared  
   if( tkName != "NONE" && tkName.length() != 0) {
     if (!(serviceLocator()->service( tkName, m_pITK, true)).isSuccess()) 
-      m_msg << MSG::ERROR << "TimeKeeper not found." << endmsg;
-    else m_msg << MSG::INFO 
-	       << "No TimeKeeper selected. "
-	       << "No time limit control on event loop." 
-	       << endmsg;
+      error() << "TimeKeeper not found." << endmsg;
+    else info() << "No TimeKeeper selected. "
+                << "No time limit control on event loop." 
+                << endmsg;
   }
 }
 
@@ -349,12 +332,11 @@ AthenaEventLoopMgr::setClearStorePolicy(Property&) {
   if ( policyName != "BeginEvent" &&
        policyName != "EndEvent" ) {
 
-    m_msg  << MSG::FATAL 
-	   << "Unknown policy [" << policyName 
-	   << "] for the 'ClearStore-policy !"
-	   << endmsg
-	   << "Valid values are: BeginEvent, EndEvent"
-	   << endmsg;
+    fatal() << "Unknown policy [" << policyName 
+            << "] for the 'ClearStore-policy !"
+            << endmsg
+            << "Valid values are: BeginEvent, EndEvent"
+            << endmsg;
     throw GaudiException("Can not setup 'ClearStore'-policy",
 			 name(),
 			 StatusCode::FAILURE);
@@ -403,7 +385,7 @@ StatusCode AthenaEventLoopMgr::finalize()
   StatusCode sc = MinimalEventLoopMgr::finalize();
   if (sc.isFailure()) 
   {
-    m_msg << MSG::ERROR 
+    error() 
 	  << "Error in Algorithm Finalize" 
 	  << endmsg;
   }
@@ -411,7 +393,7 @@ StatusCode AthenaEventLoopMgr::finalize()
   StatusCode sc2 = writeHistograms(true);
   if (sc2.isFailure()) 
   {
-    m_msg << MSG::ERROR 
+    error() 
 	  << "Error in writing Histograms"
 	  << endmsg;
   }
@@ -430,14 +412,11 @@ StatusCode AthenaEventLoopMgr::finalize()
     tool_iterator firstTool = m_tools.begin();
     tool_iterator lastTool  = m_tools.end();
     unsigned int toolCtr = 0;
-    m_msg << MSG::INFO
-	  << "Summary of AthenaEvtLoopPreSelectTool invocation: (invoked/success/failure)" << endmsg;
-    m_msg << MSG::INFO
-	   << "-----------------------------------------------------" << endmsg;
+    info() << "Summary of AthenaEvtLoopPreSelectTool invocation: (invoked/success/failure)" << endmsg;
+    info() << "-----------------------------------------------------" << endmsg;
 
     for ( ; firstTool != lastTool; firstTool++ ) {
-      m_msg  << MSG::INFO
-             << std::setw(2)     << std::setiosflags(std::ios_base::right)
+      info() << std::setw(2)     << std::setiosflags(std::ios_base::right)
              << toolCtr+1 << ".) " << std::resetiosflags(std::ios_base::right)
              << std::setw(48) << std::setfill('.')
              << std::setiosflags(std::ios_base::left)
@@ -473,7 +452,7 @@ StatusCode AthenaEventLoopMgr::writeHistograms(bool force) {
     StatusCode iret = m_histoDataMgrSvc->traverseTree( &agent );
     if( iret.isFailure() ) {
       sc = iret;
-      m_msg << MSG::ERROR 
+      error() 
 	    << "Error while traversing Histogram data store" 
 	    << endmsg;
     }
@@ -498,7 +477,7 @@ StatusCode AthenaEventLoopMgr::writeHistograms(bool force) {
 	      (*i)->registry()->setAddress(pAddr);
 	      crt = true;
 	    } else {
-	      m_msg << MSG::ERROR << "calling createRep for " 
+	      error() << "calling createRep for " 
 		    << (*i)->registry()->identifier() << endmsg;
 	    }	       
 	  }
@@ -521,7 +500,7 @@ StatusCode AthenaEventLoopMgr::writeHistograms(bool force) {
       }    // end of loop over Objects
       
       if (force || (writeInterval != 0 && m_nevt%writeInterval == 0) ) {
-	if (m_msg.level() <= MSG::DEBUG) { m_msg << MSG::DEBUG << "committing Histograms" << endmsg; }
+	if (msgLevel(MSG::DEBUG)) { debug() << "committing Histograms" << endmsg; }
 	m_histoPersSvc->conversionSvc()->commitOutput("",true).ignore();
       }
       
@@ -547,9 +526,9 @@ StatusCode AthenaEventLoopMgr::beginRunAlgorithms(const EventInfo& event) {
   {
     const StatusCode& sc = (*ita)->sysBeginRun(); 
     if ( !sc.isSuccess() ) {
-      m_msg << MSG::INFO  << "beginRun of algorithm "
-	    << (*ita)->name() << " failed with StatusCode::" << sc
-	    << endmsg;
+      info()  << "beginRun of algorithm "
+              << (*ita)->name() << " failed with StatusCode::" << sc
+              << endmsg;
       return sc;
     }
   }
@@ -572,9 +551,9 @@ StatusCode AthenaEventLoopMgr::endRunAlgorithms() {
   {
     const StatusCode& sc = (*ita)->sysEndRun();
     if ( !sc.isSuccess() ) {
-      m_msg << MSG::INFO  << "endRun of algorithm "
-	    << (*ita)->name() << " failed with StatusCode::" << sc
-	    << endmsg;
+      info()  << "endRun of algorithm "
+              << (*ita)->name() << " failed with StatusCode::" << sc
+              << endmsg;
       return sc;
     }  
   }
@@ -595,7 +574,7 @@ StatusCode AthenaEventLoopMgr::initializeAlgorithms() {
       StatusCode sc = (*ita)->sysInitialize();
       if( sc.isFailure() )
 	{
-	  m_msg << MSG::ERROR
+	  error()
 		<< "Unable to initialize Algorithm: "
 		<< (*ita)->name()
 		<< endmsg;
@@ -609,7 +588,7 @@ StatusCode AthenaEventLoopMgr::initializeAlgorithms() {
     {
       StatusCode sc = (*ita)->sysInitialize();
       if( sc.isFailure() ) {
-	m_msg << MSG::ERROR
+	error()
 	      << "Unable to initialize Output Stream: "
 	      << (*ita)->name()
 	      << endmsg;
@@ -637,9 +616,9 @@ StatusCode AthenaEventLoopMgr::executeAlgorithms(const EventContext& ctx) {
     // function
     m_aess->algExecState(*ita,ctx).setState(AlgExecState::State::Done, sc);
     if ( !sc.isSuccess() ) {
-      m_msg << MSG::INFO  << "Execution of algorithm "
-	    << (*ita)->name() << " failed with StatusCode::" << sc
-	    << endmsg;
+      info()  << "Execution of algorithm "
+              << (*ita)->name() << " failed with StatusCode::" << sc
+              << endmsg;
       return sc;
     }
   }
@@ -695,7 +674,7 @@ StatusCode AthenaEventLoopMgr::executeEvent(void* /*par*/)
     if ( pEvent == nullptr ) {
       StatusCode sc = eventStore()->retrieve(pEvent);
       if( !sc.isSuccess() ) {
-        m_msg << MSG::ERROR 
+        error() 
 	      << "Unable to retrieve Event root object" << endmsg;
         return (StatusCode::FAILURE);
       }
@@ -710,7 +689,7 @@ StatusCode AthenaEventLoopMgr::executeEvent(void* /*par*/)
     pEventPtr->event_ID()->set_lumi_block( m_nevt );
     StatusCode sc = eventStore()->record(std::move(pEventPtr),"");
     if( !sc.isSuccess() )  {
-      m_msg << MSG::ERROR 
+      error() 
 	    << "Error declaring event data object" << endmsg;
       return (StatusCode::FAILURE);
     } 
@@ -719,7 +698,7 @@ StatusCode AthenaEventLoopMgr::executeEvent(void* /*par*/)
 
   if (installEventContext (pEvent, conditionsRun).isFailure())
   {
-    m_msg << MSG::ERROR 
+    error() 
           << "Error installing event context object" << endmsg;
     return (StatusCode::FAILURE);
   }
@@ -733,9 +712,8 @@ StatusCode AthenaEventLoopMgr::executeEvent(void* /*par*/)
     m_firstRun=false;
     m_currentRun = pEvent->event_ID()->run_number();
 
-    m_msg << MSG::INFO
-	  << "  ===>>>  start of run " << m_currentRun << "    <<<==="
-	  << endmsg;
+    info() << "  ===>>>  start of run " << m_currentRun << "    <<<==="
+           << endmsg;
  
     if (!(this->beginRunAlgorithms(*pEvent)).isSuccess()) return (StatusCode::FAILURE);
   }
@@ -762,11 +740,9 @@ StatusCode AthenaEventLoopMgr::executeEvent(void* /*par*/)
   bool doEvtHeartbeat(m_eventPrintoutInterval.value() > 0 && 
                       0 == (m_nev % m_eventPrintoutInterval.value()));
   if (doEvtHeartbeat)  {
-   if(!m_useTools) m_msg << MSG::INFO
-	<< "  ===>>>  start processing event #" << evtNumber << ", run #" << m_currentRun 
+    if(!m_useTools) info() << "  ===>>>  start processing event #" << evtNumber << ", run #" << m_currentRun 
 	<< " " << m_nev << " events processed so far  <<<===" << endmsg;
-   else m_msg << MSG::INFO
-	<< "  ===>>>  start processing event #" << evtNumber << ", run #" << m_currentRun 
+   else info() << "  ===>>>  start processing event #" << evtNumber << ", run #" << m_currentRun 
 	<< " " << m_nev << " events read and " << m_proc 
         << " events processed so far  <<<===" << endmsg;   
   }
@@ -779,10 +755,9 @@ StatusCode AthenaEventLoopMgr::executeEvent(void* /*par*/)
 
   // An incident may schedule a stop, in which case is better to exit before the actual execution.
   if ( m_scheduledStop ) {
-    m_msg << MSG::ALWAYS
-	  << "A stopRun was requested by an incidentListener. "
-	  << "Do not process this event." 
-	  << endmsg;
+    always() << "A stopRun was requested by an incidentListener. "
+             << "Do not process this event." 
+             << endmsg;
     return (StatusCode::SUCCESS);
   }
 
@@ -802,22 +777,20 @@ StatusCode AthenaEventLoopMgr::executeEvent(void* /*par*/)
  ///    RECOVERABLE: skip algorithms, but do not terminate job
  ///    FAILURE: terminate job 
     if (m_failureMode == 1 && sc.isRecoverable() ) {
-      m_msg << MSG::WARNING
-	    << "RECOVERABLE error returned by algorithm. "
-	    << "Skipping remaining algorithms." << std::endl
-	    << "\tNo output will be written for this event, "
-	    << "but job will continue to next event"
-	    << endmsg;
+      warning() << "RECOVERABLE error returned by algorithm. "
+                << "Skipping remaining algorithms." << std::endl
+                << "\tNo output will be written for this event, "
+                << "but job will continue to next event"
+                << endmsg;
       eventFailed = false;
     }
 
  /// m_failureMode 2: skip algorithms, but do not terminate job
     if (m_failureMode >= 2) {
-      m_msg << MSG::INFO
-	    << "Skipping remaining algorithms." << std::endl
-	    << "\tNo output will be written for this event, "
-	    << "but job will continue to next event"
-	    << endmsg;
+      info() << "Skipping remaining algorithms." << std::endl
+             << "\tNo output will be written for this event, "
+             << "but job will continue to next event"
+             << endmsg;
       eventFailed = false;
     }
 
@@ -844,16 +817,14 @@ StatusCode AthenaEventLoopMgr::executeEvent(void* /*par*/)
   }  // end of toolsPassed test
   ++m_nev;
   if (doEvtHeartbeat) {
-   if(!m_useTools) m_msg << MSG::INFO
-	<< "  ===>>>  done processing event #" << evtNumber << ", run #" << m_currentRun 
-	<< " " << m_nev << " events processed so far  <<<===" << endmsg;
-   else m_msg << MSG::INFO
-	<< "  ===>>>  done processing event #" << evtNumber << ", run #" << m_currentRun 
-	<< " " << m_nev << " events read and " << m_proc 
-        << " events processed so far <<<===" << endmsg;
+    if(!m_useTools) info() << "  ===>>>  done processing event #" << evtNumber << ", run #" << m_currentRun 
+                           << " " << m_nev << " events processed so far  <<<===" << endmsg;
+    else info()	<< "  ===>>>  done processing event #" << evtNumber << ", run #" << m_currentRun 
+                << " " << m_nev << " events read and " << m_proc 
+                << " events processed so far <<<===" << endmsg;
    std::ofstream outfile( "eventLoopHeartBeat.txt");
    if ( !outfile ) {
-     m_msg << MSG::ERROR << " unable to open: eventLoopHeartBeat.txt" << endmsg;
+     error() << " unable to open: eventLoopHeartBeat.txt" << endmsg;
    } else {
      outfile << "  done processing event #" << evtNumber << ", run #" << m_currentRun 
 	     << " " << m_nev << " events read so far  <<<===" << std::endl;
@@ -891,7 +862,7 @@ StatusCode AthenaEventLoopMgr::nextEvent(int maxevt)
 
   // the current 'clear-store' policy
   static const ClearStorePolicy::Type s_clearStore = 
-    clearStorePolicy( m_clearStorePolicy.value(), m_msg );
+    clearStorePolicy( m_clearStorePolicy.value(), msgStream() );
 
 
   // These following two initialization loops are performed here in case new
@@ -923,8 +894,7 @@ StatusCode AthenaEventLoopMgr::nextEvent(int maxevt)
     // Check if there is a scheduled stop issued by some algorithm/sevice
     if ( m_scheduledStop ) {
       m_scheduledStop = false;
-      m_msg << MSG::ALWAYS 
-	    << "A stopRun was requested. Terminating event loop." << endmsg;
+      always() << "A stopRun was requested. Terminating event loop." << endmsg;
       break;
     }
 
@@ -938,7 +908,7 @@ StatusCode AthenaEventLoopMgr::nextEvent(int maxevt)
 	0 != total_nevt ) {
       sc = eventStore()->clearStore();
       if( !sc.isSuccess() ) {
-	m_msg << MSG::ERROR
+	error()
 	      << "Clear of Event data store failed" << endmsg;
         m_incidentSvc->fireIncident(Incident(name(),"EndEvtLoop"));
 	return sc;
@@ -960,14 +930,13 @@ StatusCode AthenaEventLoopMgr::nextEvent(int maxevt)
       if ( !sc.isSuccess() )
       {
         // This is the end of the loop. No more events in the selection
-        m_msg << MSG::INFO 
-	      << "No more events in event selection " << endmsg;
+        info() << "No more events in event selection " << endmsg;
 	sc = StatusCode::SUCCESS;
         break;
       }
 
       if (m_evtSelector->createAddress(*m_evtContext, addr).isFailure()) {
-        m_msg << MSG::ERROR
+        error()
 	      << "Could not create an IOpaqueAddress" << endmsg;
         break;
       }
@@ -978,14 +947,12 @@ StatusCode AthenaEventLoopMgr::nextEvent(int maxevt)
 	//create its proxy
 	sc = eventStore()->recordAddress(addr);
 	if( !sc.isSuccess() ) {
-	  m_msg << MSG::WARNING 
-		<< "Error declaring Event object" << endmsg;
+	  warning() << "Error declaring Event object" << endmsg;
 	  continue;
 	}
       } 
       if ((sc=eventStore()->loadEventProxies()).isFailure()) {
-	m_msg << MSG::ERROR 
-	      << "Error loading Event proxies" << endmsg;
+	error() << "Error loading Event proxies" << endmsg;
 	continue;
       } 
     }
@@ -997,7 +964,7 @@ StatusCode AthenaEventLoopMgr::nextEvent(int maxevt)
     if(m_doChrono && total_nevt>1) m_chronoStatSvc->chronoStart("EventLoopMgr_postexec");
     if( !sc.isSuccess() )
     {
-      m_msg << MSG::ERROR 
+      error() 
 	    << "Terminating event processing loop due to errors" << endmsg;
       break;
     }
@@ -1008,7 +975,7 @@ StatusCode AthenaEventLoopMgr::nextEvent(int maxevt)
     if ( s_clearStore == ClearStorePolicy::EndEvent ) {
       sc = eventStore()->clearStore();
       if( !sc.isSuccess() ) {
-        m_msg << MSG::ERROR 
+        error() 
 	      << "Clear of Event data store failed" << endmsg;
 	break;
       }
@@ -1032,15 +999,15 @@ StatusCode AthenaEventLoopMgr::seek (int evt)
 {
   IEvtSelectorSeek* is = dynamic_cast<IEvtSelectorSeek*> (m_evtSelector);
   if (is == nullptr) {
-    m_msg << MSG::ERROR << "Seek failed; unsupported by event selector"
+    error() << "Seek failed; unsupported by event selector"
 	  <<endmsg;
     return StatusCode::FAILURE;
   }
 
   if (!m_evtContext) {
     if (m_evtSelector->createContext(m_evtContext).isFailure()) {
-      m_msg  << MSG::FATAL << "Can not create the event selector Context."
-             << endmsg;
+      fatal() << "Can not create the event selector Context."
+              << endmsg;
       return StatusCode::FAILURE;
     }
   }
@@ -1050,7 +1017,7 @@ StatusCode AthenaEventLoopMgr::seek (int evt)
     m_nevt = evt;
   }
   else {
-    m_msg << MSG::ERROR << "Seek failed." << endmsg;
+    error() << "Seek failed." << endmsg;
   }
   return sc;
 }
@@ -1071,15 +1038,15 @@ int AthenaEventLoopMgr::size()
 {
   IEvtSelectorSeek* cs = dynamic_cast<IEvtSelectorSeek*> (m_evtSelector);
   if (cs == nullptr) {
-    m_msg << MSG::ERROR << "Collection size unsupported by event selector"
+    error() << "Collection size unsupported by event selector"
 	  <<endmsg;
     return -1;
   }
 
   if (!m_evtContext) {
     if (m_evtSelector->createContext(m_evtContext).isFailure()) {
-      m_msg  << MSG::FATAL << "Can not create the event selector Context."
-             << endmsg;
+      fatal() << "Can not create the event selector Context."
+              << endmsg;
       return StatusCode::FAILURE;
     }
   }
@@ -1093,13 +1060,13 @@ void AthenaEventLoopMgr::handle(const Incident& inc)
     return;
 
   if(!m_evtContext || !m_firstRun) {
-    m_msg << MSG::WARNING << "Skipping BeforeFork handler. Either no event selector is provided or begin run has already passed" << endmsg;
+    warning() << "Skipping BeforeFork handler. Either no event selector is provided or begin run has already passed" << endmsg;
   }
 
   // Initialize Algorithms and Output Streams
   StatusCode sc = initializeAlgorithms();
   if(sc.isFailure()) {
-    m_msg << MSG::ERROR << "Failed to initialize Algorithms" << endmsg;
+    error() << "Failed to initialize Algorithms" << endmsg;
     return; 
   }
 
@@ -1108,32 +1075,32 @@ void AthenaEventLoopMgr::handle(const Incident& inc)
   IOpaqueAddress* addr = nullptr;
   sc = m_evtSelector->next(*m_evtContext);
   if(!sc.isSuccess()) {
-    m_msg << MSG::INFO << "No more events in event selection " << endmsg;
+    info() << "No more events in event selection " << endmsg;
     return;
   }
   sc = m_evtSelector->createAddress(*m_evtContext, addr);
   if (sc.isFailure()) {
-    m_msg << MSG::ERROR << "Could not create an IOpaqueAddress" << endmsg;
+    error() << "Could not create an IOpaqueAddress" << endmsg;
     return; 
   }
   if (nullptr != addr) {
     //create its proxy
     sc = eventStore()->recordAddress(addr);
     if(!sc.isSuccess()) {
-      m_msg << MSG::ERROR << "Error declaring Event object" << endmsg;
+      error() << "Error declaring Event object" << endmsg;
       return;
     }
   } 
   
   if(eventStore()->loadEventProxies().isFailure()) {
-    m_msg << MSG::WARNING << "Error loading Event proxies" << endmsg;
+    warning() << "Error loading Event proxies" << endmsg;
     return;
   }
 
   // Retrieve the Event object
   sc = eventStore()->retrieve(pEvent);
   if(!sc.isSuccess()) {
-    m_msg << MSG::ERROR << "Unable to retrieve Event root object" << endmsg;
+    error() << "Unable to retrieve Event root object" << endmsg;
     return;
   }
 
@@ -1148,13 +1115,13 @@ void AthenaEventLoopMgr::handle(const Incident& inc)
     }
   }
   if (installEventContext (pEvent, conditionsRun).isFailure()) {
-    m_msg << MSG::ERROR << "Unable to install EventContext object" << endmsg;
+    error() << "Unable to install EventContext object" << endmsg;
     return;
   }
 
   sc = beginRunAlgorithms(*pEvent);
   if (!sc.isSuccess()) {
-    m_msg << MSG::ERROR << "beginRunAlgorithms() failed" << endmsg;
+    error() << "beginRunAlgorithms() failed" << endmsg;
     return;
   } 
 
@@ -1162,11 +1129,11 @@ void AthenaEventLoopMgr::handle(const Incident& inc)
   m_currentRun = pEvent->event_ID()->run_number();
 
   // Clear Store
-  const ClearStorePolicy::Type s_clearStore = clearStorePolicy( m_clearStorePolicy.value(), m_msg );
+  const ClearStorePolicy::Type s_clearStore = clearStorePolicy( m_clearStorePolicy.value(), msgStream() );
   if(s_clearStore==ClearStorePolicy::EndEvent) {
     sc = eventStore()->clearStore();
     if(!sc.isSuccess()) {
-      m_msg << MSG::ERROR << "Clear of Event data store failed" << endmsg;
+      error() << "Clear of Event data store failed" << endmsg;
     }
   }
 }
@@ -1213,7 +1180,7 @@ StatusCode AthenaEventLoopMgr::installEventContext (const EventInfo* pEvent,
   if (eventStore()->record(std::make_unique<EventContext> (m_eventContext),
                            "EventContext").isFailure())
   {
-    m_msg << MSG::ERROR 
+    error() 
           << "Error recording event context object" << endmsg;
     return (StatusCode::FAILURE);
   }
diff --git a/Control/AthenaServices/src/AthenaEventLoopMgr.h b/Control/AthenaServices/src/AthenaEventLoopMgr.h
index 9c96fe1481a2ef26eaaac470d64b6f8c2122abc4..0274ee563a6eba0dd54d2ab15c9d51cef273651a 100644
--- a/Control/AthenaServices/src/AthenaEventLoopMgr.h
+++ b/Control/AthenaServices/src/AthenaEventLoopMgr.h
@@ -221,9 +221,6 @@ private:
   IntegerProperty m_writeInterval;
   bool m_writeHists;
 
-  /// a @c std::cout like object
-  mutable MsgStream m_msg;
-
   /// events processed
   unsigned int m_nev;
   unsigned int m_proc;
diff --git a/Control/AthenaServices/src/AthenaHiveEventLoopMgr.cxx b/Control/AthenaServices/src/AthenaHiveEventLoopMgr.cxx
index a14a809f8685e3d54b6740b4d11cd870c5e65058..6b9c098aabbdb80cb4cb2418b10ea178ed7e768b 100644
--- a/Control/AthenaServices/src/AthenaHiveEventLoopMgr.cxx
+++ b/Control/AthenaServices/src/AthenaHiveEventLoopMgr.cxx
@@ -67,7 +67,6 @@ AthenaHiveEventLoopMgr::AthenaHiveEventLoopMgr(const std::string& nam,
     m_activeStoreSvc ( "ActiveStoreSvc",           nam ),
     m_pITK(0), 
     m_currentRun(0), m_firstRun(true), m_tools(this), m_nevt(0), m_writeHists(false),
-    m_msg( msgSvc(), nam ),
     m_nev(0), m_proc(0), m_useTools(false),m_doEvtHeartbeat(false),
     m_pEvent(nullptr)
 
@@ -134,25 +133,17 @@ AthenaHiveEventLoopMgr::~AthenaHiveEventLoopMgr()
 StatusCode AthenaHiveEventLoopMgr::initialize()    
 {
 
-  // configure our MsgStream
-  m_msg.setLevel( m_outputLevel.value() );
-
-  m_msg << MSG::INFO << "Initializing " << name()
-	<< " - package version " << PACKAGE_VERSION << endmsg ;
+  info() << "Initializing " << name()
+         << " - package version " << PACKAGE_VERSION << endmsg ;
  
 
   StatusCode sc = MinimalEventLoopMgr::initialize();
   if ( !sc.isSuccess() ) 
   {
-    m_msg << MSG::ERROR
-	<< "Failed to initialize base class MinimalEventLoopMgr"
-	<< endmsg;
+    error() << "Failed to initialize base class MinimalEventLoopMgr"
+            << endmsg;
     return sc;
-  } else {
-    // re-configure our MsgStream: 
-    // yes... do it twice b/c this is how we do it...
-    m_msg.setLevel( m_outputLevel.value() );
-  }
+  } 
 
 //-------------------------------------------------------------------------
 // Setup stuff for hive
@@ -187,9 +178,8 @@ StatusCode AthenaHiveEventLoopMgr::initialize()
   sc = m_eventStore.retrieve();
   if( !sc.isSuccess() )  
   {
-    m_msg << MSG::FATAL 
-	  << "Error retrieving pointer to StoreGateSvc"
-	  << endmsg;
+    fatal() << "Error retrieving pointer to StoreGateSvc"
+            << endmsg;
     return sc;
   }
 
@@ -200,7 +190,7 @@ StatusCode AthenaHiveEventLoopMgr::initialize()
   sc = m_incidentSvc.retrieve();
   if( !sc.isSuccess() )  
   {
-    m_msg << MSG::FATAL << "Error retrieving IncidentSvc." << endmsg;
+    fatal() << "Error retrieving IncidentSvc." << endmsg;
     return sc;
   }
 
@@ -210,9 +200,8 @@ StatusCode AthenaHiveEventLoopMgr::initialize()
   SmartIF<IProperty> prpMgr(serviceLocator());
   if ( !prpMgr.isValid() ) 
   {
-    m_msg << MSG::FATAL 
-	  << "IProperty interface not found in ApplicationMgr." 
-	  << endmsg;
+    fatal() << "IProperty interface not found in ApplicationMgr." 
+            << endmsg;
     return StatusCode::FAILURE;
   }
 
@@ -223,9 +212,8 @@ StatusCode AthenaHiveEventLoopMgr::initialize()
   sc = m_histoDataMgrSvc.retrieve();
   if( !sc.isSuccess() )  
   {
-    m_msg << MSG::FATAL 
-	  << "Error retrieving HistogramDataSvc" 
-	  << endmsg;
+    fatal() << "Error retrieving HistogramDataSvc" 
+            << endmsg;
     return sc;
   }
     
@@ -241,9 +229,8 @@ StatusCode AthenaHiveEventLoopMgr::initialize()
 				       this->name() );
 
     if( !sc.isSuccess() )  {
-      m_msg << MSG::WARNING 
-	    << "Histograms cannot not be saved - though required." 
-	    << endmsg;
+      warning() << "Histograms cannot not be saved - though required." 
+                << endmsg;
     } else {
 
       IService *is = 0;
@@ -254,14 +241,13 @@ StatusCode AthenaHiveEventLoopMgr::initialize()
       }
 
       if (sc.isFailure()) {
-	m_msg << MSG::ERROR 
-	      << "could not locate actual Histogram persistency service"
-	      << endmsg;
+        error() << "could not locate actual Histogram persistency service"
+                << endmsg;
       } else {
 	Service *s = dynamic_cast<Service*>(is);
 	if (s == 0) {
-	  m_msg << MSG::ERROR << "Could not dcast HistPersSvc to a Service"
-		<< endmsg;
+	  error() << "Could not dcast HistPersSvc to a Service"
+                  << endmsg;
 	} else {
 	  const Property &prop = s->getProperty("OutputFile");
 	  std::string val;
@@ -271,10 +257,9 @@ StatusCode AthenaHiveEventLoopMgr::initialize()
 	    val = sprop.value();
 
 	  } catch (...) {
-	    m_msg << MSG::VERBOSE
-		  << "could not dcast OutputFile property to a StringProperty."
-		  << " Need to fix Gaudi."
-		  << endmsg;
+	    verbose() << "could not dcast OutputFile property to a StringProperty."
+                      << " Need to fix Gaudi."
+                      << endmsg;
 
 	    val = prop.toString();
 
@@ -294,9 +279,10 @@ StatusCode AthenaHiveEventLoopMgr::initialize()
     }
     
 
-  }  else { if (m_msg.level() <= MSG::DEBUG) { m_msg << MSG::DEBUG 
-						     << "Histograms saving not required." 
-						     << endmsg; } }
+  }  else { if (msgLevel(MSG::DEBUG)) {
+      debug() << "Histograms saving not required." 
+              << endmsg; }
+  }
 //-------------------------------------------------------------------------
 // Setup EventSelector service
 //-------------------------------------------------------------------------
@@ -304,7 +290,7 @@ StatusCode AthenaHiveEventLoopMgr::initialize()
   // the evt sel is usually specified as a property of ApplicationMgr
   if (selName.empty()) 
     sc = setProperty(prpMgr->getProperty("EvtSel"));
-  if (sc.isFailure()) m_msg << MSG::WARNING << "Unable to set EvtSel property" << endmsg;
+  if (sc.isFailure()) warning() << "Unable to set EvtSel property" << endmsg;
 
   // We do not expect a Event Selector necessarily being declared
   if( !selName.empty() && selName != "NONE") {
@@ -316,21 +302,20 @@ StatusCode AthenaHiveEventLoopMgr::initialize()
       
       // reset iterator
       if (m_evtSelector->createContext(m_evtContext).isFailure()) {
-	m_msg  << MSG::FATAL << "Can not create the event selector Context." 
-	       << endmsg;
+	fatal() << "Can not create the event selector Context." 
+                << endmsg;
 	return StatusCode::FAILURE;
       }
-      if (m_msg.level() <= MSG::INFO) {
+      if (msgLevel(MSG::INFO)) {
 	INamedInterface* named (dynamic_cast< INamedInterface* >(theEvtSel));
 	if (0 != named) {
-	  m_msg << MSG::INFO 
-		<< "Setup EventSelector service " << named->name( ) 
-		<< endmsg;
+          info() << "Setup EventSelector service " << named->name( ) 
+                 << endmsg;
 	}
       }
     } else if (sc.isFailure()) {
-      m_msg  << MSG::FATAL << "No valid event selector called " << selName 
-	     << endmsg;
+      fatal() << "No valid event selector called " << selName 
+              << endmsg;
       return StatusCode::FAILURE;
     }
   }  
@@ -356,7 +341,7 @@ StatusCode AthenaHiveEventLoopMgr::initialize()
   sc = m_activeStoreSvc.retrieve();
   if( !sc.isSuccess() )  
   {
-    m_msg << MSG::FATAL << "Error retrieving ActiveStoreSvc." << endmsg;
+    fatal() << "Error retrieving ActiveStoreSvc." << endmsg;
     return sc;
   }
 
@@ -381,11 +366,10 @@ AthenaHiveEventLoopMgr::setupTimeKeeper(Property&) {
   // We do not expect a TimeKeeper necessarily being declared  
   if( tkName != "NONE" && tkName.length() != 0) {
     if (!(serviceLocator()->service( tkName, m_pITK, true)).isSuccess()) 
-      m_msg << MSG::ERROR << "TimeKeeper not found." << endmsg;
-    else m_msg << MSG::INFO 
-	       << "No TimeKeeper selected. "
-	       << "No time limit control on event loop." 
-	       << endmsg;
+      error() << "TimeKeeper not found." << endmsg;
+    else info() << "No TimeKeeper selected. "
+	        << "No time limit control on event loop." 
+	        << endmsg;
   }
 }
 
@@ -396,12 +380,10 @@ AthenaHiveEventLoopMgr::setClearStorePolicy(Property&) {
   if ( policyName != "BeginEvent" &&
        policyName != "EndEvent" ) {
 
-    m_msg  << MSG::FATAL 
-	   << "Unknown policy [" << policyName 
-	   << "] for the 'ClearStore-policy !"
-	   << endmsg
-	   << "Valid values are: BeginEvent, EndEvent"
-	   << endmsg;
+    fatal() << "Unknown policy [" << policyName 
+            << "] for the 'ClearStore-policy !\n"
+            << "           Valid values are: BeginEvent, EndEvent"
+            << endmsg;
     throw GaudiException("Can not setup 'ClearStore'-policy",
 			 name(),
 			 StatusCode::FAILURE);
@@ -450,17 +432,15 @@ StatusCode AthenaHiveEventLoopMgr::finalize()
   StatusCode sc = MinimalEventLoopMgr::finalize();
   if (sc.isFailure()) 
   {
-    m_msg << MSG::ERROR 
-	  << "Error in Service base class Finalize" 
-	  << endmsg;
+    error() << "Error in Service base class Finalize" 
+            << endmsg;
   }
 
   StatusCode sc2 = writeHistograms(true);
   if (sc2.isFailure()) 
   {
-    m_msg << MSG::ERROR 
-	  << "Error in writing Histograms"
-	  << endmsg;
+    error() << "Error in writing Histograms"
+	    << endmsg;
   }
 
   // Release all interfaces (ignore StatusCodes)
@@ -487,14 +467,11 @@ StatusCode AthenaHiveEventLoopMgr::finalize()
     tool_iterator firstTool = m_tools.begin();
     tool_iterator lastTool  = m_tools.end();
     unsigned int toolCtr = 0;
-    m_msg << MSG::INFO
-	  << "Summary of AthenaEvtLoopPreSelectTool invocation: (invoked/success/failure)" << endmsg;
-    m_msg << MSG::INFO
-	   << "-----------------------------------------------------" << endmsg;
+    info() << "Summary of AthenaEvtLoopPreSelectTool invocation: (invoked/success/failure)" << endmsg;
+    info() << "-----------------------------------------------------" << endmsg;
 
     for ( ; firstTool != lastTool; firstTool++ ) {
-      m_msg  << MSG::INFO
-             << std::setw(2)     << std::setiosflags(std::ios_base::right)
+      info() << std::setw(2)     << std::setiosflags(std::ios_base::right)
              << toolCtr+1 << ".) " << std::resetiosflags(std::ios_base::right)
              << std::setw(48) << std::setfill('.')
              << std::setiosflags(std::ios_base::left)
@@ -530,9 +507,8 @@ StatusCode AthenaHiveEventLoopMgr::writeHistograms(bool force) {
     StatusCode iret = m_histoDataMgrSvc->traverseTree( &agent );
     if( iret.isFailure() ) {
       sc = iret;
-      m_msg << MSG::ERROR 
-	    << "Error while traversing Histogram data store" 
-	    << endmsg;
+      error() << "Error while traversing Histogram data store" 
+              << endmsg;
     }
     
     IDataSelector* objects = agent.selectedObjects();
@@ -555,8 +531,8 @@ StatusCode AthenaHiveEventLoopMgr::writeHistograms(bool force) {
 	      (*i)->registry()->setAddress(pAddr);
 	      crt = true;
 	    } else {
-	      m_msg << MSG::ERROR << "calling createRep for " 
-		    << (*i)->registry()->identifier() << endmsg;
+	      error() << "calling createRep for " 
+                      << (*i)->registry()->identifier() << endmsg;
 	    }	       
 	  }
 	  
@@ -578,7 +554,7 @@ StatusCode AthenaHiveEventLoopMgr::writeHistograms(bool force) {
       }    // end of loop over Objects
       
       if (force || (writeInterval != 0 && m_nevt%writeInterval == 0) ) {
-	if (m_msg.level() <= MSG::DEBUG) { m_msg << MSG::DEBUG << "committing Histograms" << endmsg; }
+	if (msgLevel(MSG::DEBUG)) { debug() << "committing Histograms" << endmsg; }
 	m_histoPersSvc->conversionSvc()->commitOutput("",true).ignore();
       }
       
@@ -646,10 +622,9 @@ StatusCode AthenaHiveEventLoopMgr::executeEvent(void* createdEvts_IntPtr )
 
   // An incident may schedule a stop, in which case is better to exit before the actual execution.
   if ( m_scheduledStop ) {
-    m_msg << MSG::ALWAYS
-	  << "A stopRun was requested by an incidentListener. "
-	  << "Do not process this event." 
-	  << endmsg;
+    always() << "A stopRun was requested by an incidentListener. "
+             << "Do not process this event." 
+             << endmsg;
     createdEvts = -1;
     return (StatusCode::SUCCESS);
   }
@@ -685,9 +660,8 @@ StatusCode AthenaHiveEventLoopMgr::executeEvent(void* createdEvts_IntPtr )
     m_firstRun=false;
     m_currentRun = pEvent->event_ID()->run_number();
 
-    m_msg << MSG::INFO
-	  << "  ===>>>  start of run " << m_currentRun << "    <<<==="
-	  << endmsg;
+    info() << "  ===>>>  start of run " << m_currentRun << "    <<<==="
+           << endmsg;
  
     if (!(this->beginRunAlgorithms(*pEvent)).isSuccess()) return (StatusCode::FAILURE);
   }
@@ -732,8 +706,7 @@ StatusCode AthenaHiveEventLoopMgr::executeEvent(void* createdEvts_IntPtr )
   if (eventStore()->record(std::make_unique<EventContext> (*evtContext),
                            "EventContext").isFailure())
   {
-    m_msg << MSG::ERROR 
-          << "Error recording event context object" << endmsg;
+    error() << "Error recording event context object" << endmsg;
     return (StatusCode::FAILURE);
   }
 
@@ -741,16 +714,14 @@ StatusCode AthenaHiveEventLoopMgr::executeEvent(void* createdEvts_IntPtr )
 		 0 == (m_nev % m_eventPrintoutInterval.value()));
   if (m_doEvtHeartbeat)  {
    if(!m_useTools) 
-     m_msg << MSG::INFO
-           << "  ===>>>  start processing event #" << evtNumber << ", run #" << m_currentRun 
-           << " on slot " << evtContext->slot() << ",  " << m_proc 
-           << " events processed so far  <<<===" << endmsg;
+     info() << "  ===>>>  start processing event #" << evtNumber << ", run #" << m_currentRun 
+            << " on slot " << evtContext->slot() << ",  " << m_proc 
+            << " events processed so far  <<<===" << endmsg;
    else 
-     m_msg << MSG::INFO
-           << "  ===>>>  start processing event #" << evtNumber << ", run #" << m_currentRun 
-           << " on slot " << evtContext->slot() << ",  " 
-           << m_nev << " events read and " << m_proc 
-           << " events processed so far  <<<===" << endmsg;   
+     info() << "  ===>>>  start processing event #" << evtNumber << ", run #" << m_currentRun 
+            << " on slot " << evtContext->slot() << ",  " 
+            << m_nev << " events read and " << m_proc 
+            << " events processed so far  <<<===" << endmsg;   
   }
 
   // Reset the timeout singleton
@@ -879,8 +850,7 @@ StatusCode AthenaHiveEventLoopMgr::nextEvent(int maxevt)
       
       sc = executeEvent(&createdEvts);
       if (sc.isFailure()) {
-	m_msg << MSG::ERROR 
-	      << "Terminating event processing loop due to errors" << endmsg;
+	error() << "Terminating event processing loop due to errors" << endmsg;
 	loop_ended = true;
       }
 
@@ -926,15 +896,15 @@ StatusCode AthenaHiveEventLoopMgr::seek (int evt)
 {
   IEvtSelectorSeek* is = dynamic_cast<IEvtSelectorSeek*> (m_evtSelector);
   if (is == 0) {
-    m_msg << MSG::ERROR << "Seek failed; unsupported by event selector"
-	  <<endmsg;
+    error() << "Seek failed; unsupported by event selector"
+            << endmsg;
     return StatusCode::FAILURE;
   }
 
   if (!m_evtContext) {
     if (m_evtSelector->createContext(m_evtContext).isFailure()) {
-      m_msg  << MSG::FATAL << "Can not create the event selector Context."
-             << endmsg;
+      fatal() << "Can not create the event selector Context."
+              << endmsg;
       return StatusCode::FAILURE;
     }
   }
@@ -944,7 +914,7 @@ StatusCode AthenaHiveEventLoopMgr::seek (int evt)
     m_nevt = evt;
   }
   else {
-    m_msg << MSG::ERROR << "Seek failed." << endmsg;
+    error() << "Seek failed." << endmsg;
   }
   return sc;
 }
@@ -965,15 +935,15 @@ int AthenaHiveEventLoopMgr::size()
 {
   IEvtSelectorSeek* cs = dynamic_cast<IEvtSelectorSeek*> (m_evtSelector);
   if (cs == 0) {
-    m_msg << MSG::ERROR << "Collection size unsupported by event selector"
-	  <<endmsg;
+    error() << "Collection size unsupported by event selector"
+            << endmsg;
     return -1;
   }
 
   if (!m_evtContext) {
     if (m_evtSelector->createContext(m_evtContext).isFailure()) {
-      m_msg  << MSG::FATAL << "Can not create the event selector Context."
-             << endmsg;
+      fatal() << "Can not create the event selector Context."
+              << endmsg;
       return StatusCode::FAILURE;
     }
   }
@@ -991,13 +961,13 @@ void AthenaHiveEventLoopMgr::handle(const Incident& inc)
     return;
 
   if(!m_evtContext || !m_firstRun) {
-    m_msg << MSG::WARNING << "Skipping BeforeFork handler. Either no event selector is provided or begin run has already passed" << endmsg;
+    warning() << "Skipping BeforeFork handler. Either no event selector is provided or begin run has already passed" << endmsg;
   }
 
   // Initialize Algorithms and Output Streams
   StatusCode sc = initializeAlgorithms();
   if(sc.isFailure()) {
-    m_msg << MSG::ERROR << "Failed to initialize Algorithms" << endmsg;
+    error() << "Failed to initialize Algorithms" << endmsg;
     return; 
   }
 
@@ -1006,38 +976,38 @@ void AthenaHiveEventLoopMgr::handle(const Incident& inc)
   IOpaqueAddress* addr = 0;
   sc = m_evtSelector->next(*m_evtContext);
   if(!sc.isSuccess()) {
-    m_msg << MSG::INFO << "No more events in event selection " << endmsg;
+    info() << "No more events in event selection " << endmsg;
     return;
   }
   sc = m_evtSelector->createAddress(*m_evtContext, addr);
   if (sc.isFailure()) {
-    m_msg << MSG::ERROR << "Could not create an IOpaqueAddress" << endmsg;
+    error() << "Could not create an IOpaqueAddress" << endmsg;
     return; 
   }
   if (0 != addr) {
     //create its proxy
     sc = eventStore()->recordAddress(addr);
     if(!sc.isSuccess()) {
-      m_msg << MSG::ERROR << "Error declaring Event object" << endmsg;
+      error() << "Error declaring Event object" << endmsg;
       return;
     }
   } 
   
   if(eventStore()->loadEventProxies().isFailure()) {
-    m_msg << MSG::WARNING << "Error loading Event proxies" << endmsg;
+    warning() << "Error loading Event proxies" << endmsg;
     return;
   }
 
   // Retrieve the Event object
   sc = eventStore()->retrieve(pEvent);
   if(!sc.isSuccess()) {
-    m_msg << MSG::ERROR << "Unable to retrieve Event root object" << endmsg;
+    error() << "Unable to retrieve Event root object" << endmsg;
     return;
   }
 
   sc = beginRunAlgorithms(*pEvent);
   if (!sc.isSuccess()) {
-    m_msg << MSG::ERROR << "beginRunAlgorithms() failed" << endmsg;
+    error() << "beginRunAlgorithms() failed" << endmsg;
     return;
   } 
 
@@ -1047,11 +1017,11 @@ void AthenaHiveEventLoopMgr::handle(const Incident& inc)
   m_pEvent = pEvent;
 
   // Clear Store
-  const ClearStorePolicy::Type s_clearStore = clearStorePolicy( m_clearStorePolicy.value(), m_msg );
+  const ClearStorePolicy::Type s_clearStore = clearStorePolicy( m_clearStorePolicy.value(), msgStream() );
   if(s_clearStore==ClearStorePolicy::EndEvent) {
     sc = eventStore()->clearStore();
     if(!sc.isSuccess()) {
-      m_msg << MSG::ERROR << "Clear of Event data store failed" << endmsg;
+      error() << "Clear of Event data store failed" << endmsg;
     }
   }
 }
@@ -1153,7 +1123,7 @@ int AthenaHiveEventLoopMgr::declareEventRootAddress(const EventContext* ctx){
 	return 0;
       }
     } if ((sc=eventStore()->loadEventProxies()).isFailure()) {
-      error()    << "Error loading Event proxies" << endmsg;
+      error() << "Error loading Event proxies" << endmsg;
       return -1;
     } 
     
diff --git a/Control/AthenaServices/src/AthenaHiveEventLoopMgr.h b/Control/AthenaServices/src/AthenaHiveEventLoopMgr.h
index 7c41929a2946481c2080761479d77108bbf77a7d..172608dab592f79428def7aaf8bcfc27e3ce118a 100644
--- a/Control/AthenaServices/src/AthenaHiveEventLoopMgr.h
+++ b/Control/AthenaServices/src/AthenaHiveEventLoopMgr.h
@@ -269,9 +269,6 @@ private:
   UnsignedIntegerProperty m_writeInterval;
   bool m_writeHists;
 
-  /// a @c std::cout like object
-  mutable MsgStream m_msg;
-
   /// events processed
   unsigned int m_nev;
   unsigned int m_proc;
diff --git a/Control/DataModelTest/DataModelRunTests/share/CondReaderMT.ref b/Control/DataModelTest/DataModelRunTests/share/CondReaderMT.ref
index 23864f10649c80b651b7c4756b7839b551d5435a..14b791ce47466eeb2801e158c642afa8de6b0f1f 100644
--- a/Control/DataModelTest/DataModelRunTests/share/CondReaderMT.ref
+++ b/Control/DataModelTest/DataModelRunTests/share/CondReaderMT.ref
@@ -76,9 +76,6 @@ ThreadPoolSvc                                      INFO no thread init tools att
 AvalancheSchedulerSvc                              INFO Activating scheduler in a separate thread
 AvalancheSchedulerSvc                              INFO Waiting for AvalancheSchedulerSvc to activate
 AvalancheSchedulerSvc                              INFO Start checking the actionsQueue
-PrecedenceSvc                                      INFO Assembling CF and DF task precedence rules
-PrecedenceRulesGraph                               INFO CondSvc found. DF precedence rules will be augmented with 'Conditions'
-PrecedenceSvc                                      INFO PrecedenceSvc initialized successfully
 AvalancheSchedulerSvc                              INFO Found 8 algorithms
 AvalancheSchedulerSvc                              INFO Data Dependencies for Algorithms:
   BeginIncFiringAlg
@@ -107,6 +104,9 @@ AvalancheSchedulerSvc                              INFO Data Dependencies for Al
 AvalancheSchedulerSvc                              INFO Will attribute the following unmet INPUT dependencies to "SGInputLoader/SGInputLoader" Algorithm
    o ('EventInfo','StoreGateSvc+McEventInfo')    required by Algorithm: 
        * DMTest::CondReaderAlg
+PrecedenceSvc                                      INFO Assembling CF and DF task precedence rules
+PrecedenceRulesGraph                               INFO CondSvc found. DF precedence rules will be augmented with 'Conditions'
+PrecedenceSvc                                      INFO PrecedenceSvc initialized successfully
 AvalancheSchedulerSvc                              INFO Concurrency level information:
 AvalancheSchedulerSvc                              INFO  o Number of events in flight: 1
 AvalancheSchedulerSvc                              INFO  o TBB thread pool size:  'ThreadPoolSize':1
diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1MT.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1MT.ref
index 32c7ed8b0b1021abe7a99ff2959ed27d1416bd20..a53e16fd098022805368f34e26d2b370b2351bb9 100644
--- a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1MT.ref
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1MT.ref
@@ -36,8 +36,6 @@ ThreadPoolSvc                                      INFO no thread init tools att
 AvalancheSchedulerSvc                              INFO Activating scheduler in a separate thread
 AvalancheSchedulerSvc                              INFO Waiting for AvalancheSchedulerSvc to activate
 AvalancheSchedulerSvc                              INFO Start checking the actionsQueue
-PrecedenceSvc                                      INFO Assembling CF and DF task precedence rules
-PrecedenceSvc                                      INFO PrecedenceSvc initialized successfully
 AvalancheSchedulerSvc                              INFO Found 10 algorithms
 AvalancheSchedulerSvc                              INFO Data Dependencies for Algorithms:
   BeginIncFiringAlg
@@ -79,10 +77,12 @@ AvalancheSchedulerSvc                              INFO Data Dependencies for Al
       none
 AvalancheSchedulerSvc                              INFO Will attribute the following unmet INPUT dependencies to "SGInputLoader/SGInputLoader" Algorithm
    o ('EventInfo','StoreGateSvc+McEventInfo')    required by Algorithm: 
-       * xAODTestWriteCVec
-       * xAODTestWriteCInfo
        * xAODTestWrite
+       * xAODTestWriteCInfo
        * xAODTestDecor
+       * xAODTestWriteCVec
+PrecedenceSvc                                      INFO Assembling CF and DF task precedence rules
+PrecedenceSvc                                      INFO PrecedenceSvc initialized successfully
 AvalancheSchedulerSvc                              INFO Concurrency level information:
 AvalancheSchedulerSvc                              INFO  o Number of events in flight: 1
 AvalancheSchedulerSvc                              INFO  o TBB thread pool size:  'ThreadPoolSize':1
diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle2MT.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle2MT.ref
index 0808336e44cba9e7be8ebb49d2a8e00477af9191..457ce122e92dd4ef3da2dc2194eee1070c5dc3a4 100644
--- a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle2MT.ref
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle2MT.ref
@@ -58,8 +58,6 @@ ThreadPoolSvc                                      INFO no thread init tools att
 AvalancheSchedulerSvc                              INFO Activating scheduler in a separate thread
 AvalancheSchedulerSvc                              INFO Waiting for AvalancheSchedulerSvc to activate
 AvalancheSchedulerSvc                              INFO Start checking the actionsQueue
-PrecedenceSvc                                      INFO Assembling CF and DF task precedence rules
-PrecedenceSvc                                      INFO PrecedenceSvc initialized successfully
 AvalancheSchedulerSvc                              INFO Found 6 algorithms
 AvalancheSchedulerSvc                              INFO Data Dependencies for Algorithms:
   BeginIncFiringAlg
@@ -80,6 +78,8 @@ AvalancheSchedulerSvc                              INFO Will attribute the follo
        * xAODTestReadDecor
    o ('DMTest::CVec','StoreGateSvc+cvec.dInt1')    required by Algorithm: 
        * xAODTestReadDecor
+PrecedenceSvc                                      INFO Assembling CF and DF task precedence rules
+PrecedenceSvc                                      INFO PrecedenceSvc initialized successfully
 AvalancheSchedulerSvc                              INFO Concurrency level information:
 AvalancheSchedulerSvc                              INFO  o Number of events in flight: 1
 AvalancheSchedulerSvc                              INFO  o TBB thread pool size:  'ThreadPoolSize':1
diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT.ref
index 8be30e8d1402fd0928f681b8cecc848a42478931..86a06339534b6cf8e98c7d0eff5d747b37538986 100644
--- a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT.ref
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT.ref
@@ -50,8 +50,6 @@ ThreadPoolSvc                                      INFO no thread init tools att
 AvalancheSchedulerSvc                              INFO Activating scheduler in a separate thread
 AvalancheSchedulerSvc                              INFO Waiting for AvalancheSchedulerSvc to activate
 AvalancheSchedulerSvc                              INFO Start checking the actionsQueue
-PrecedenceSvc                                      INFO Assembling CF and DF task precedence rules
-PrecedenceSvc                                      INFO PrecedenceSvc initialized successfully
 AvalancheSchedulerSvc                              INFO Found 10 algorithms
 AvalancheSchedulerSvc                              INFO Data Dependencies for Algorithms:
   BeginIncFiringAlg
@@ -94,10 +92,12 @@ AvalancheSchedulerSvc                              INFO Data Dependencies for Al
       none
 AvalancheSchedulerSvc                              INFO Will attribute the following unmet INPUT dependencies to "SGInputLoader/SGInputLoader" Algorithm
    o ('EventInfo','StoreGateSvc+McEventInfo')    required by Algorithm: 
-       * xAODTestWriteCVec
-       * xAODTestWriteCInfo
-       * xAODTestWriteSymlinks
        * xAODTestAlg
+       * xAODTestWriteSymlinks
+       * xAODTestWriteCInfo
+       * xAODTestWriteCVec
+PrecedenceSvc                                      INFO Assembling CF and DF task precedence rules
+PrecedenceSvc                                      INFO PrecedenceSvc initialized successfully
 AvalancheSchedulerSvc                              INFO Concurrency level information:
 AvalancheSchedulerSvc                              INFO  o Number of events in flight: 1
 AvalancheSchedulerSvc                              INFO  o TBB thread pool size:  'ThreadPoolSize':1
diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT.ref
index c217224ab38794b6df16f80dea876338e2af1a78..35f5495678fed0a9ec3fecfa40a610e9a2fa6309 100644
--- a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT.ref
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT.ref
@@ -58,8 +58,6 @@ ThreadPoolSvc                                      INFO no thread init tools att
 AvalancheSchedulerSvc                              INFO Activating scheduler in a separate thread
 AvalancheSchedulerSvc                              INFO Waiting for AvalancheSchedulerSvc to activate
 AvalancheSchedulerSvc                              INFO Start checking the actionsQueue
-PrecedenceSvc                                      INFO Assembling CF and DF task precedence rules
-PrecedenceSvc                                      INFO PrecedenceSvc initialized successfully
 AvalancheSchedulerSvc                              INFO Found 6 algorithms
 AvalancheSchedulerSvc                              INFO Data Dependencies for Algorithms:
   BeginIncFiringAlg
@@ -86,6 +84,8 @@ AvalancheSchedulerSvc                              INFO Will attribute the follo
        * xAODTestReadSymlink
    o ('SG::AuxElement','StoreGateSvc+cinfo')    required by Algorithm: 
        * xAODTestReadSymlink
+PrecedenceSvc                                      INFO Assembling CF and DF task precedence rules
+PrecedenceSvc                                      INFO PrecedenceSvc initialized successfully
 AvalancheSchedulerSvc                              INFO Concurrency level information:
 AvalancheSchedulerSvc                              INFO  o Number of events in flight: 1
 AvalancheSchedulerSvc                              INFO  o TBB thread pool size:  'ThreadPoolSize':1