Gaudi Framework, version v20r4

Generated: 8 Jan 2009

StreamLogger.cpp

Go to the documentation of this file.
00001 
00002 #include "StreamLogger.h"
00003 
00004 #include "GaudiKernel/IMessageSvc.h"
00005 
00006 #include <stdexcept>
00007 #include <fstream>
00008 
00009 // StreamLogger::StreamLogger(): m_isMine(0), p_ost(0), p_msgStr(0), m_level(0){};
00010 
00011 StreamLogger::StreamLogger(const std::string& file): m_isMine(1), 
00012                                                      p_ost(0), p_msgStr(0) {
00013   m_name = "file:" + file;
00014   p_ost = new std::ofstream(file.c_str());
00015   if (p_ost == 0) {
00016     throw std::invalid_argument("can't open file");
00017   }
00018 }
00019 
00020 StreamLogger::StreamLogger(IMessageSvc *svc, MSG::Level lev): 
00021   m_isMine(1), p_ost(0), p_msgStr(0) {
00022   p_msgStr = new MsgStream( svc, "IssueLogger");
00023   m_level = lev;
00024   m_name = "MsgStream";
00025 }
00026 
00027 StreamLogger::StreamLogger(std::ostream& ost): m_isMine(0) , p_ost(0), 
00028                                                p_msgStr(0){
00029   p_ost = &ost;
00030   if (ost == std::cerr) {
00031     m_name = "STDERR";
00032   } else if ( ost == std::cout) {
00033     m_name = "STDOUT";
00034   } else {
00035     m_name = "unknown ostream";
00036   }
00037 }
00038 
00039 std::string
00040 StreamLogger::name() const {
00041   return m_name;
00042 }
00043 
00044 StreamLogger::~StreamLogger() {
00045   if (m_isMine && p_ost != 0) {
00046     delete p_ost;
00047   }
00048   if (p_msgStr != 0) {
00049     delete p_msgStr;
00050   }
00051 }

Generated at Thu Jan 8 17:44:23 2009 for Gaudi Framework, version v20r4 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004