| # Gaudi Framework, version v21r7 |

Home |  | Generated: 22 Jan 2010

# IssueLogger.h

Go to the documentation of this file.

    00001 #ifndef GAUDISVC_ISSUELOGGER_H
    00002 #define GAUDISVC_ISSUELOGGER_H
    00003
    00004 #include "GaudiKernel/Service.h"
    00005 #include "GaudiKernel/IIssueLogger.h"
    00006 #include "GaudiKernel/IssueSeverity.h"
    00007 #include "GaudiKernel/Property.h"
    00008 #include "StreamLogger.h"
    00009 #include "boost/function.hpp"
    00010 #include <string>
    00011 #include <vector>
    00012 #include <map>
    00013
    00014 // Forward declarations
    00015 template <class TYPE> class SvcFactory;
    00016
    00017 class IssueLogger: public extends1<Service, IIssueLogger> {
    00018
    00019 public:
    00020   friend class SvcFactory<IssueLogger>;
    00021
    00022   virtual StatusCode initialize();
    00023   virtual StatusCode reinitialize();
    00024   virtual StatusCode finalize();
    00025
    00026   IssueLogger(const std::string& name, ISvcLocator *svc );
    00027
    00028   void report(IssueSeverity::Level level, const std::string& msg,
    00029               const std::string& origin);
    00030   void report(const IssueSeverity& err);
    00031
    00032
    00033 protected:
    00034
    00035   virtual ~IssueLogger();
    00036
    00037 private:
    00038
    00039   StringArrayProperty m_outputfile;
    00040   StringProperty m_reportLevelS, m_traceLevelS;
    00041   BooleanProperty m_showTime;
    00042
    00043   IssueSeverity::Level m_reportLevel, m_traceLevel;
    00044
    00045   StreamLogger *m_logger[IssueSeverity::NUM_LEVELS];
    00046   boost::function<void (const std::string&)> m_log[IssueSeverity::NUM_LEVELS];
    00047
    00048   std::map<MSG::Level, IssueSeverity::Level> m_msgSevMap;
    00049   std::map<IssueSeverity::Level, MSG::Level> m_sevMsgMap;
    00050   std::map<IssueSeverity::Level, std::string> m_levelTrans;
    00051   std::map<std::string, IssueSeverity::Level> m_levelSTrans;
    00052
    00053
    00054   StatusCode connect( const std::string& );
    00055   void getTraceBack(std::string& stack);
    00056
    00057   MSG::Level sevToMsg(IssueSeverity::Level &lev);
    00058   IssueSeverity::Level msgToSev(MSG::Level &lev);
    00059
    00060   void setupDefaultLogger();
    00061   void setupLevels(Property& prop);
    00062   void setupStreams(Property& prop);
    00063
    00064 };
    00065
    00066 #endif